Express 4路由器app.use无法正常工作

时间:2015-08-19 00:18:24

标签: node.js express

我向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调用和导出路由器实例的模块之间,有一个'断开'。

以下是一些证明:

enter image description here

正如您所看到的,有一个断点,请求正在命中该行,但它没有被转发到路由器实例。不知道为什么。我可以确认模块的路径是正确的,如果不是我得到的错误会更清楚。

0 个答案:

没有答案