执行路由器时出错

这是我的代码。

server.js

var express = require('express'), bodyParser = require('body-parser'), log = require('./libs/log')(module), api = require('./libs/api.js'), app = express(); // settings app.set('port', 5000); // to process post requests app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); // routes rawQuestionRouter = require('./routes/rawQuestionRoutes.js'); app.use('/rawQuestions', rawQuestionRouter); 

和routes / rawQuestionRoute.js:

 var express = require('express'); var routes = function() { var rawQuestionRouter = express.Router(); rawQuestionRouter.route('/test') .post(function(request, response) { log.debug(request.body); response.send('raw question saved'); }); return rawQuestionRouter; } module.exports = routes; 

更新:

当我在'/ rawQuestions / test'上发出POST请求时,服务器不响应。 为什么?

你正在导出的routesfunction,这不是一个路由器(它返回一个,但是这是不一样的)。

有几个解决scheme:

 // server.js app.use('/rawQuestions', rawQuestionRouter()); 

要么:

 // routes/rawQuestionRoute.js module.exports = routes(); 

或者直接删除整个routesfunction直接导出路由器实例。