【问题标题】:Multiple express middleware calls多个 express 中间件调用
【发布时间】:2017-07-25 06:43:01
【问题描述】:

我正在使用 express 开发一个应用程序,并创建了一个设置语言 cookie 的函数:

[..]
app.use(cookieParser());
app.use(function(req, res, next) {
    if(req.cookies.lang === undefined){
      console.log(req.cookies);
    }
    next();
});
app.use(express.static(path.join(__dirname, 'public')));
[..]

一切都很好,但使用 nodemon 我注意到当我发出请求时该函数被多次调用,我不知道这是一个想要的行为还是我犯了一些错误。

这是控制台日志:

[nodemon] starting `node ./bin/www`
Connected to database
{ 'connect.sid': 's:NeNC-uUnHtrdlqkSI7GkbMQ6IAhwo2It.tD8Ei9k6XtPn2/4Da2AVJIjoRlK4zkWiltsdgL58Dak' }
GET /signup 304 516.356 ms - -
{ 'connect.sid': 's:id5VQwMWKzVC5ycpR6brH5YQQpbEe9Au.brQxxrNtniBmYL1swH2WRApDSyBLJk4qlEc4+8oQ9T4' }
{ 'connect.sid': 's:id5VQwMWKzVC5ycpR6brH5YQQpbEe9Au.brQxxrNtniBmYL1swH2WRApDSyBLJk4qlEc4+8oQ9T4' }
GET /css/bootstrap.min.css 304 3.662 ms - -
{ 'connect.sid': 's:id5VQwMWKzVC5ycpR6brH5YQQpbEe9Au.brQxxrNtniBmYL1swH2WRApDSyBLJk4qlEc4+8oQ9T4' }
GET /css/tooltipster.bundle.min.css 304 5.445 ms - -
{ 'connect.sid': 's:id5VQwMWKzVC5ycpR6brH5YQQpbEe9Au.brQxxrNtniBmYL1swH2WRApDSyBLJk4qlEc4+8oQ9T4' }
{ 'connect.sid': 's:id5VQwMWKzVC5ycpR6brH5YQQpbEe9Au.brQxxrNtniBmYL1swH2WRApDSyBLJk4qlEc4+8oQ9T4' }
GET /css/tooltipster-sideTip-light.min.css 304 9.551 ms - -
GET /css/app.min.css 304 8.440 ms - -
{ 'connect.sid': 's:id5VQwMWKzVC5ycpR6brH5YQQpbEe9Au.brQxxrNtniBmYL1swH2WRApDSyBLJk4qlEc4+8oQ9T4' }
GET /js/vendor/tooltipster.bundle.min.js 304 7.714 ms - -
GET /js/app.js 304 2.261 ms - -

谁能启发我?我很好奇。

【问题讨论】:

    标签: node.js express middleware


    【解决方案1】:

    嗯 - 看起来有 7 个日志和 7 个请求,这让我认为在记录路由和记录 req.cookies 之间存在竞争条件。我觉得你没事。

    【讨论】:

    • 一个记录器“功能”呃?
    • 我相信 :) 这是我最好的猜测,因为数字匹配
    • 是的,也许。至少在快速会话下移动它解决了问题:D
    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 2017-01-04
    相关资源
    最近更新 更多