天天看點

Express_02--處理表單的POST請求

express處理表單的post請求

需要我們注意的是express内置了擷取get請求體的API(req.query),但是并沒有内置擷取post請求體的API,是以需要我們手動的去配置中間件。

配置body-parser中間件

1. 安裝

npm install body-parser
複制代碼      

2. 導入并配置

const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
複制代碼      

3. 此時即可成功擷取req.body(用戶端post的内容)

app.post('/post',(req,res) => {
    console.log(req.body);
})
複制代碼      
[Object: null prototype] { name: 'faithpassi', message: 'dsddfgfgdf' }
複制代碼      

将讀取到的字元串轉為JSON

fs.readFile('./db.json','utf8', (err, data) => {
    if (!err) {
        res.render('index.html', {
            students: JSON.parse(data).students
        });
    }
})
複制代碼      

将所有的路由結構提取到一個檔案中,并進行暴露

方式一:自己封裝函數

const fs = require('fs');
module.exports = function (app) {
    app.get('/students', (req, res) => {
        fs.readFile('./db.json', 'utf8', (err, data) => {
            if (!err) {
                res.render('index.html', {
                    students: JSON.parse(data).students
                });
            }
        })
    })
}
複制代碼      

方式二:使用Express自帶的路由容器

1.在路由檔案中建立路由容器,并進行暴露

const express = require('express');
// 建立一個路由容器
const router = express.Router();
router.get('/students', (req, res) => {
    fs.readFile('./db.json', 'utf8', (err, data) => {
        if (!err) {
            res.render('index.html', {
                students: JSON.parse(data).students
            });
        }
    })
})
module.exports = router;
複制代碼      

2. 将路由容器挂載到app上

// 把路由器挂載到 app上
app.use(router)