我向Express服务器发出了POST请求,并且获得了404
POST /batch/Job 404
在我的Express中间件(app.js)中我有这个:
app.use('/batch/:collection',require('./routes/batch'));
和routes/batch.js
文件如下所示:
var express = require('express');
var router = express.Router();
router.param('collection', function (req, res, next, collectionName) {
next();
});
router.post(function(req,res,next){
res.send({});
});
router.all(function (req, res, next) {
res.send({});
});
module.exports = router;
前端的看起来像这样:
var json = {models:saveArray};
$.ajax({
url: '/batch/Job',
data:json,
dataType: 'json',
type: 'POST'
}).done(function (msg, textStatus, jqXHR) {
cb(msg, textStatus, jqXHR);
}).fail(function (jqXHR, textStatus, errorThrown) {
alert('collection batch persist failed.')
}).always(function (a, textStatus, b) {
});
我不能为我的生活找出404错误发生的原因。前端代码不应该真正重要,因为服务器日志清楚地显示请求将转到该URL(/ batch / Job)。
当我调试时,没有到达routes / batch.js中的任何断点,但是当可以确认在批处理/作业有POST请求时,app.use中间件被命中。因此,在app.use调用和导出路由器实例的模块之间,有一个'断开'。
以下是一些证明:
正如您所看到的,有一个断点,请求正在命中该行,但它没有被转发到路由器实例。不知道为什么。我可以确认模块的路径是正确的,如果不是我得到的错误会更清楚。