在另一个上下文中表达中间件 运行?
Express middleware run in another context?
我正在为 express 创建一个中间件模块,但在 "app.use"
中使用时似乎无法传递对象属性
function test (mytest) {
this.mytest = mytest;
};
test.prototype.showTest = function (req, res, next) {
console.log(this.mytest);
next();
};
var s = new test('foo');
router.post('/login', s.showTest, function (req, res) {
res.send('test');
});
此代码将输出 "undefined" 而不是 "foo." 如何让它保留对象属性?
Return你在创建对象时的函数:
function test (mytest) {
return function (req, res, next) {
console.log(mytest);
next();
};
};
var s = test('foo');
router.post('/login', s, function (req, res) {
res.send('test');
});
我正在为 express 创建一个中间件模块,但在 "app.use"
中使用时似乎无法传递对象属性function test (mytest) {
this.mytest = mytest;
};
test.prototype.showTest = function (req, res, next) {
console.log(this.mytest);
next();
};
var s = new test('foo');
router.post('/login', s.showTest, function (req, res) {
res.send('test');
});
此代码将输出 "undefined" 而不是 "foo." 如何让它保留对象属性?
Return你在创建对象时的函数:
function test (mytest) {
return function (req, res, next) {
console.log(mytest);
next();
};
};
var s = test('foo');
router.post('/login', s, function (req, res) {
res.send('test');
});