Node.js 无法在路由定义之前分配中间件

Node.js 无法在路由定义之前分配中间件,node.js,express,Node.js,Express,我需要为express js的app实例分配几个中间件,所以我做了: const express = require('express'); const app = express(); app.use((req, res) => { req.bot = 'just as test' }); 然后我: require('../routes/router')(app); 其中包括: module.exports = function (app) { app.get('/test

我需要为
express js的
app
实例分配几个中间件,所以我做了:

const express = require('express');
const app = express();

app.use((req, res) => { req.bot = 'just as test' });
然后我:

require('../routes/router')(app);
其中包括:

module.exports = function (app) {

   app.get('/test', (req, res) => { res.redirect(process.env.APP_SITE); });
}
键入时:
http://localhost:5000/test
我得到:

空响应

但这只会发生在上面的示例中,如果我移动
app.use
after
require(“../routes/router”)(app)
所有操作都很好,但我不能使用中间件


为什么会发生这种情况?

您需要调用中间件中的下一个路由处理程序,否则它将停止在那里

试一试

这将继续向实际处理程序
app.get('/test'…

阅读更多

app.use((req, res, next) => {
  req.bot = 'just as test'
  next()
})