假设我要这样做:
app.use('/user/login', require('./routes/user.route.js')(variable));
我不能,因为我会得到:
TypeError:Router.use()需要一个中间件功能,但未定义
如何将variable
传递给user.route
构造函数?
答案 0 :(得分:2)
在您的user.route.js
中,您需要导出以下内容:
module.exports = function (variable) {
return (req, res, next) => {
// your middleware
next()
}
}
或带有冒号(https://wsvincent.com/javascript-currying/):
module.exports = variable => (req, res, next) => {
const myUsedVariable = variable + 1
res.send(myUsedVariable)
}
如果您使用的是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
}