自定义中间件

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('已启动....');

})

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值