共计 807 个字符,预计需要花费 3 分钟才能阅读完成。
Express 中间件 body-parser 简单实现
之前文章写了怎么用 body-parser 中间件处理 post 请求,今天就大概实现下 body-parser 中 urlencoded 这个方法。首先通过命令提示输入 mkdir lib && cd lib。再输入 touch body-parser.js。把下面的代码在 body-parser.js 敲一遍。
// lib/body-parser.js
const querystring = require(‘querystring’);
module.exports.urlencoded = function (req, res, next) {
let chunks = [];
req.on(‘data’, data => {
chunks.push(data);
});
req.on(‘end’, () => {
// 合并 Buffer。
let buf = Buffer.concat(chunks).toString();
// 把 querystring 解析过的 json 放到 req.body 上。
req.body = querystring.parse(buf);
next();
});
}
下面是主程序代码。
// app.js
const express = require(‘express’);
const bodyParser = require(‘./lib/body-parser’);
let app = express();
app.use(bodyParser.urlencoded);
app.post(‘/’, (req, res) => {
res.send(req.body);
});
app.listen(8000);
现在就完成和 body-parser 中间件类似的功能了,req.body 上面有请求过来的 post 数据。
我的博客和 github,喜欢就去点点星吧,谢谢。
https://github.com/lanpangzhi
http://blog.langpz.com