【发布时间】:2019-03-05 12:16:10
【问题描述】:
假设我想这样做:
app.use('/user/login', require('./routes/user.route.js')(variable));
我不能,因为我会得到:
TypeError: Router.use() 需要一个中间件函数,但有一个未定义
如何将variable 传递给user.route 构造函数?
【问题讨论】:
假设我想这样做:
app.use('/user/login', require('./routes/user.route.js')(variable));
我不能,因为我会得到:
TypeError: Router.use() 需要一个中间件函数,但有一个未定义
如何将variable 传递给user.route 构造函数?
【问题讨论】:
在您的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
}
【讨论】:
var express = require('express')是个好方法吗?