const app = require("express")();
//定义一个中间件
//自定义中间件
app.use(function (req, res, next) {
console.log(Date.now() + ':我是中间环节....');
next();
});
//跨域
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");//解决跨域
next() //转发请求
})
//调用postData函数,会得到一个函数
let postData = function () {
return function (req, res, next) {
let arr = []
req.on('data', chunk => {
arr.push(chunk)
})
req.on("end", () => {
// console.log(Buffer.concat(arr).toString());
req.body = Buffer.concat(arr).toString();
next();
})
}
};
//自定义中间件 ---->取出post参数
app.use(postData());
app.post("/login", (req, res) => {//req和res 与中间件函数中是同一组请求响应对象
//判断逻辑
console.log(req.body);//取出中间件中保存的post数据
res.send("login")
})
//错误处理中间件
app.use(function(req,res){
res.send({
code:500,
msg:"地址错误,请检查后重新访问"
})
})
app.listen(5000, () => {
console.log('已启动....');
})