Node.js 通过express router时类函数中存在未定义值的问题
我在节点8中有一个简单的类,但是这个值有问题Node.js 通过express router时类函数中存在未定义值的问题,node.js,node8.2,Node.js,Node8.2,我在节点8中有一个简单的类,但是这个值有问题 module.exports = class Controller { constructor() { this.service = new Service(); } create(request, response, next) { try { const body = request.body; this.service.create(body
module.exports = class Controller {
constructor() {
this.service = new Service();
}
create(request, response, next) {
try {
const body = request.body;
this.service.create(body)
console.log(this.service)// Undefined
} catch (error) {
next(error)
}
我遇到的问题是这个值未定义。
上面的控制器由路由器触发:
const Router = require("express").Router;
const Controller = require("./controller");
module.exports = class NewRouter {
constructor() {
this.router = new Router();
this.controller = new Controller();
this.initRoutes();
}
initRoutes() {
this.router.post("/setup", this.controller.create);
}
};
我想我解决了这个问题,但真的不喜欢这个解决方案
this.router.post("/setup", this.controller.create.bind(this.controller));
你能发布更多的代码吗?看起来您正在尝试引用NewRouter类中的NewRouter。代码已更新。这是从原始代码复制粘贴的一个错误。您确定这console.log(This.service)
导致未定义吗?我之所以问这个问题,是因为上面的行首先会出错,this.service.create(body)
。调试构造函数中的行:this.service=newservice()代码>-此时是否此服务未定义?