使用express和ES6类在节点js rest api中查找路径

时间:2018-01-17 00:51:09

标签: javascript node.js rest express es6-class

我尝试使用Node.js设置REST api,但我想使用ES6类来完成,我的app.js看起来像这样:

const express = require("express");
const morgan = require("morgan");
const bodyParser = require("body-parser");

class ApplicationServer {

    constructor() {
        this.app = express();
        this.initExpress();
        this.initExpressMiddleWare();
        this.initControllers();
        this.start();
    }

    initExpress() {
        this.app.set('port', process.env.PORT || 3000);
    }

    initExpressMiddleWare() {
        this.app.use(morgan("dev"));
        this.app.use(bodyParser.json());
    }

    initControllers() {
        require('./controllers/CountryController')(this.app);
    }

    start() {
        this.app.listen(this.app.get('port'), () =>{
            console.log(`Server listening for port: ${this.app.get('port')}`);
        });
    }
}

new ApplicationServer();

一切正常,服务器启动并通过端口3000监听,完全没问题,但是如果你看到我尝试使用require从initControllers()方法初始化我的所有控制器。 CountryController.js文件包含一个包含以下代码的类:

class CountryController {

    contructor(app) {
        this.app = app;
        this.getCountries();
    }

    getCountries() {
        this.app.get('api/country', (req, res) => {
            res.json([]);
        });
    }
}

module.exports = ( app ) => { return new CountryController( app ) }  

在此之后,当我运行服务器时,我没有收到任何错误,但是当我尝试调用api方法localhost:3000/api/country时,我总是得到:

  

GET / api / country 404 4.375 ms - 150

似乎没有认出路线。 找到我做错的任何帮助?感谢

1 个答案:

答案 0 :(得分:0)

您是否尝试过在路线前使用正斜杠的路线?

尝试从

更改路线
api/country

/api/country