javascript – Nodejs,快速路由为es6类

前端之家收集整理的这篇文章主要介绍了javascript – Nodejs,快速路由为es6类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想清理我的项目一点,现在我尝试使用es6类为我的路线.我的问题是,这总是未定义的.
var express = require('express');
var app = express();

class Routes {
    constructor(){
        this.foo = 10
    }

    Root(req,res,next){
        res.json({foo: this.foo}); // TypeError: Cannot read property 'foo' of undefined
    }
}

var routes = new Routes();
app.get('/',routes.Root);
app.listen(8080);

解决方法

尝试使用代码来固定这个:
app.get('/',routes.Root.bind(routes));

您可以使用下划线bindAll功能离开样板.例如:

var _ = require('underscore');

// ..

var routes = new Routes();
_.bindAll(routes)
app.get('/',routes.Root);

我还发现,es7允许您以更优雅的方式编写代码

class Routes {
    constructor(){
        this.foo = 10
    }

    Root = (req,next) => {
        res.json({foo: this.foo});
    }
}

var routes = new Routes();
app.get('/',routes.Root);

猜你在找的JavaScript相关文章