nodejs-express框架

https://www.runoob.com/nodejs/nodejs-express-framework.html

express

// 可以設置中間件來響應 HTTP 請求。
// 定義了路由表用於執行不同的 HTTP 請求動作。
// 可以通過向模板傳遞參數來動態渲染 HTML 頁面。
//
var express = require('express');
var app = express();

//( 1). 主頁輸出 "Hello World"
app.get('/', function(req, res) {
    console.log("主頁 GET 請求");

    res.send('Hello GET');
})

//(2).POST 請求
app.post('/', function(req, res) {
    console.log("主頁 POST 請求");
    res.send('Hello POST');
})

// (3). /del_user 頁面響應
app.get('/del_user', function(req, res) {
    console.log("/del_user 響應 DELETE 請求");
    res.send('刪除頁面');
})

//(4). 對頁面 abcd, abxcd, ab123cd, 等響應 GET 請求
app.get('/ab*cd', function(req, res) {
    console.log(req.url + " GET 請求");
    res.send('正則匹配' + req.url);
})

//(5).靜態資源訪問
app.use('/public', express.static(__dirname + '/public')); //http://127.0.0.1:8081/public/logo.png
//(6).get頁面使用
app.get('/index.html', function(req, res) {
    res.sendFile(__dirname + "/" + "index.html");
})
app.get('/process_get', function(req, res) {

    // 輸出 JSON 格式
    var response = {
        "first_name": req.query.first_name,
        "last_name": req.query.last_name
    };
    console.log(response);
    res.end(JSON.stringify(response));
})

//(7).post 頁面使用
var bodyParser = require('body-parser');
// 創建 application/x-www-form-urlencoded 編碼解析
var urlencodedParser = bodyParser.urlencoded({ extended: false })
app.get('/index.htm', function(req, res) {
    res.sendFile(__dirname + "/" + "index.htm");
})
app.post('/process_post', urlencodedParser, function(req, res) {
    // 輸出 JSON 格式
    var response = {
        "first_name": req.body.first_name,
        "last_name": req.body.last_name
    };
    console.log(response);
    res.end(JSON.stringify(response));
})

//(8).文件上傳post
var fs = require("fs");
var bodyParser = require('body-parser');
var multer = require('multer');

app.use(bodyParser.urlencoded({ extended: false }));
app.use(multer({ dest: '/tmp/' }).array('image'));

app.get('/index.htm', function(req, res) {
    res.sendFile(__dirname + "/" + "index.htm");
})

app.post('/file_upload', function(req, res) {

    console.log(req.files[0]); // 上傳的文件信息

    var des_file = __dirname + "/" + req.files[0].originalname;
    fs.readFile(req.files[0].path, function(err, data) {
        fs.writeFile(des_file, data, function(err) {
            if (err) {
                console.log(err);
            } else {
                response = {
                    message: 'File uploaded successfully',
                    filename: req.files[0].originalname
                };
            }
            console.log(response);
            res.writeHead(200, { 'Content-Type': 'text/html;charset=UTF-8' });
            res.end(JSON.stringify(response));
        });
    });
})

//(9).cookie
var express = require('express')
var cookieParser = require('cookie-parser')
var util = require('util');
var app = express()
app.use(cookieParser())

app.get('/c', function(req, res) { //set cookies
    res.cookie('username', 'cookie的值', { maxAge: 600000 });//公用
    res.cookie('userinfo', 'cookie111', { maxAge: 60000, path: '/r', httpOnly: true });//獨用
    // res.cookie('user', 'cookie的值111', { maxAge: 600000, domain: '.aaa.com' });//二級域名共用
    res.send('設置cookie成功');
    console.log(req.cookies);

})

app.get('/r', function(req, res) {//get cookies

    console.log("Cookies: " + util.inspect(req.cookies));
    res.send(req.cookies);
})

//端口8081,localhost:8081/
var server = app.listen(8081, function() {

    var host = server.address().address
    var port = server.address().port

    console.log("應用實例,訪問地址爲 http://%s:%s", host, port)

})

index.html

get方法

<html>

<body>
    <form action="/process_get" method="GET">
        First Name: <input type="text" name="first_name"> <br> Last Name: <input type="text" name="last_name">
        <input type="submit" value="Submit">

    </form>
</body>

</html>

index.htm

post方法

<html>

<body>
    <form action="/process_post" method="POST">
        First Name: <input type="text" name="first_name"> <br> Last Name: <input type="text" name="last_name">
        <input type="submit" value="Submit">
    </form>
    <h3>文件上傳:</h3>
    選擇一個文件上傳: <br />
    <form action="/file_upload" method="post" enctype="multipart/form-data">
        <input type="file" name="image" size="30" />
        <br />
        <input type="submit" value="上傳文件" />
    </form>
</body>

</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章