【发布时间】:2019-07-28 09:40:35
【问题描述】:
我正在为 node.js 后端服务器使用 express 框架。我正在使用快速路由器来定义不同的路由。
这是我的app.js 文件:
var express = require('express');
var app = express();
var server = require('http').Server(app);
var cors = require('cors');
app.use(cors());
app.use(express.json());
var route = require('./route');
app.use('/api/', route);
server.listen(3000, () => {
console.log('App running on port 3000!');
});
这是我的路由器route.js:
var express = require('express');
var router = express.Router();
var controller = require('./controller');
router.use(function (req, res, next) {
next();
router.get('/test', function (req, res, next) {
controller.get(req, res, next);
});
});
module.exports = router;
路由本身使用控制器进行逻辑controller.js
exports.get = function (req, res, next) {
res.send('Hello World');
}
使用node app.js 启动应用程序并调用定义的路由http://localhost:3000/api/test 将导致Cannot GET /api/test 第一次尝试。但是,第二次调用该路由会得到预期的答案hello world。
第一次调用失败的原因是什么?为什么它在第二次尝试时起作用?任何想法表示赞赏
【问题讨论】:
标签: javascript node.js express