当尝试将路由器中的类方法作为中间件_express

问题描述 投票:0回答:2

如果我是正确的,我认为我的问题与 javascript 本身有关。我试图在我的中间件中使用此关键字,但我未定义。为什么?

class SomeClass {
    constructor(foo){
        this.foo =  foo
    }
    testFoo(req, res, next){
        console.log(this.foo) // undefined
    }
}

let class_test = new SomeClass("some data")


app.get('/', class_test.testFoo, (req, res) => res.send('Hello World!'));
node.js express
2个回答
0
投票

试试这个:

app.get(
  '/', 
  (req, res, next) => class_test.testFoo(req, res, next),
  (req, res) => res.send('Hello World!')
);

0
投票

试试这个

app.get('/', class_test.testFoo.bind(class_test), (req, res) => res.send('Hello World!'));

© www.soinside.com 2019 - 2024. All rights reserved.