标题发送后,Express处理程序不能404

我有一个快速的应用程序,我已经添加了新的路线:

这是路线:

var router = require('express').Router(); router.post('/',function (req, res, next) { res.send("Ok"); }); module.exports = router; 

现在,我对这个邮政路线的每一个请求,即时通讯快递日志:

finalhandler cannot 404 after headers sent

当调用DB时,预处理程序确实为每个请求发送404,

所以即时猜测,有一些与我的职能和最终处理程序的种族

任何人有anyidea?

更新:

这是index.js

 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var expressValidator = require('express-validator'); var _ = require('underscore'); var stringUtils = require("underscore.string"); var mongoose = require('mongoose'); mongoose.connect(config.mongoUrl); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(expressValidator()); var middleware = require('./middleware/authentication-middleware'); app.use(middleware.allowCrossDomains); app.all('*', loginMiddlewareSkip); var skipAuthPaths = ['/auth/fb', '/auth/login', '/auth/signup', '/auth/forgot', '/auth/reset']; function loginMiddlewareSkip(req, res, next) { if (stringUtils.startsWith(req.path, "/auth") || req.path == '/status'){ return next(); } middleware.ensureAuthenticated(req,res,next); next(); } app.use('/passport', require('./routes/passport')); app.use('/auth', require('./routes/authenticate')); app.listen(3000, function() { console.log('Express server listening on port ' + 3000); }); 

上面的文件是routes/passport ,auth文件工作正常

好的,问题出在我的中间产品之一上:

在我的loginMiddlewareSkip函数中,我正在调用middleware.ensureAuthenticated(req,res,next)如果path需要authentication,在那个函数里我调用next()如果authentication是成功的,你可以看到我之后再次调用next()调用ensureAuthenticated函数。

loginMiddlewareSkip删除next()解决了这个问题