可能是一个愚蠢的错误,但我不明白为什么我没有得到GET请求的回复。
这是位于根目录中的服务器文件的一部分:
//server.js
...
var serverRoutes = require('./server/routes');
app.use('/server', serverRoutes);
...
和我的路线档案:
//server/routes/index.js
var express = require('express');
var router = express.Router();
module.exports = function() {
router.get('/test', function(req, res, next){
console.log("HIT");
res.status(200).send("OK");
});
return router;
}
每当我在浏览器中导航到/server/test
时,它就会停滞不前。终端没有记录任何内容,没有" OK"浏览器收到回复 - 我错过了什么?
答案 0 :(得分:3)
您的serverRoutes
模块导出一个返回路由器的函数。您需要调用它才能将它返回的Router
实例传递给app.use
:
app.use('/server', serverRoutes());
否则,express会将您导出的函数视为中间件,这会导致应用程序挂起,因为它对传递给它的response
没有任何作用。