gpt4 book ai didi

node.js - 用 typescript 实现快速 Controller 类

转载 作者:搜寻专家 更新时间:2023-10-30 20:38:43 26 4
gpt4 key购买 nike

我正在用 typescript 做一个快速应用程序。路由器代码是:

let user = new User();
router.get("/", user.test);

用户类是

export class User {
test(req, res, next) {
// this === undefined
}
}

问题是 this 对象在测试方法中未定义。有没有更好的方法来实现快速路由?

最佳答案

您需要使用 bind function在调用方法时保持 this 的范围:

let user = new User();
router.get("/", user.test.bind(user));

或者您可以在 User 构造函数中执行此操作:

export class User {
constructor() {
this.test = this.test.bind(this);
}

test(req, res, next) {
...
}
}

另一种选择是使用 arrow function :

let user = new User();
router.get("/", (req, res, next) => user.test(req, res, next));

关于node.js - 用 typescript 实现快速 Controller 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40018472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com