首页 > 解决方案 > 尝试将路由器中的类方法作为中间件传递时“this”未定义_express

问题描述

如果我是正确的,我认为我的问题与 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.jsexpress

解决方案


Try this:

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

推荐阅读