Node.js 通过express router时类函数中存在未定义值的问题

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

我在节点8中有一个简单的类,但是这个值有问题

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()-此时是否
此服务未定义?