Node.js 如何将参数传递给中间件的构造函数?

Node.js 如何将参数传递给中间件的构造函数?,node.js,express,Node.js,Express,假设我想这样做: app.use('/user/login', require('./routes/user.route.js')(variable)); 我不能,因为我会得到: TypeError:Router.use()需要中间件函数,但未定义 如何将变量传递给用户.route构造函数?在您的用户.route.js中,您需要导出如下内容: module.exports = function (variable) { return (req, res, next) => {

假设我想这样做:

app.use('/user/login', require('./routes/user.route.js')(variable));
我不能,因为我会得到:

TypeError:Router.use()需要中间件函数,但未定义


如何将
变量
传递给
用户.route
构造函数?

在您的
用户.route.js
中,您需要导出如下内容:

module.exports = function (variable) {
    return (req, res, next) => {
        // your middleware
        next()
    }
}
或者用咖喱():

如果您使用的是express.Router:

var express = require('express')
var router = express.Router()

router.get('/', function(req, res) {
  res.send('Birds home page')
})

module.exports = variable => {
   // do something with your variable
   router.use(function displayVariable(req, res, next) {
      console.log(variable)
      next()
   })

   return router
}

user.route.js
中,您需要导出如下内容:

module.exports = function (variable) {
    return (req, res, next) => {
        // your middleware
        next()
    }
}
或者用咖喱():

如果您使用的是express.Router:

var express = require('express')
var router = express.Router()

router.get('/', function(req, res) {
  res.send('Birds home page')
})

module.exports = variable => {
   // do something with your variable
   router.use(function displayVariable(req, res, next) {
      console.log(variable)
      next()
   })

   return router
}

这是一种很好的方法,可以在每个路由器中以性能的方式定义
var express=require('express')
?require机制可以处理这个问题,这是一个很好的方法,可以在每个路由器中以性能的方式定义
var express=require('express')
?需要机制来处理这个问题