Node.js ExpressFinalHandler无法在发送标头后执行404
我有一个express应用程序,并添加了新路线: 这是路线:Node.js ExpressFinalHandler无法在发送标头后执行404,node.js,express,Node.js,Express,我有一个express应用程序,并添加了新路线: 这是路线: var router = require('express').Router(); router.post('/',function (req, res, next) { res.send("Ok"); }); module.exports = router; 现在,当我向这条邮政路线提出每一个请求时,我都会在快递日志上看到: finalhandler无法在发送标头后执行404操作 当调用DB时,finalhandler会为
var router = require('express').Router();
router.post('/',function (req, res, next) {
res.send("Ok");
});
module.exports = router;
现在,当我向这条邮政路线提出每一个请求时,我都会在快递日志上看到:
finalhandler无法在发送标头后执行404操作
当调用DB时,finalhandler会为每个请求发送404
所以我猜我的函数和最终的句柄之间存在某种竞争
有人知道吗
更新:
这是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
,身份验证文件工作正常好的问题出在我的一个中间件上:
在我调用的loginMiddlewareSkip
函数中
middleware.ensureAuthenticated(req,res,next)
如果路径需要身份验证,则在我调用的函数中next()
如果身份验证成功,您可以看到,我在调用ensureAuthenticated
函数后再次调用next()
从
loginMiddlewareSkip
中删除next()
解决了需要发布更多代码的问题。@TannerFaulkner我已经添加了索引jsWhere'sfinalhandler
?@TannerFaulkner它不是我的。。这是一种明确的依赖关系