我尝试使用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
似乎没有认出路线。 找到我做错的任何帮助?感谢
答案 0 :(得分:0)
您是否尝试过在路线前使用正斜杠的路线?
尝试从
更改路线api/country
到
/api/country