我的一个节点调用遇到了上述问题。 据我所知,此错误显示您是否多次调用res.send。 看一下代码,它应该只发送一次res,所以我不确定这里有什么问题。
插入
时会抛出错误var express = require('express');
var bodyParser = require('body-parser');
var session = require('express-session');
var cors = require('cors');
var massive = require('massive');
var config = require('./config');
var app = express();
app.use(bodyParser.json());
app.use(cors());
var db = massive.connect({connectionString: config.connectionString}, function(err, localdb){
db = localdb;
app.set('db', db);
});
app.post('/api/login', function(req, res, next) {
db.get_users(function(err, users) {
if(err) res.status(500).json(err);
else {
for(var i = 0; i < users.length; i++) {
if(req.body.email == users[i].email && req.body.password == users[i].password) {
console.log("matched");
var currentUser = users[i];
res.send({
msg: 'passed',
user: currentUser
});
}
else { res.send("Username or Password is wrong"); }
}
}
})
})
app.listen(3000, function() {
console.log("I am listening");
});
答案 0 :(得分:1)
您正在res.send()
循环中执行for
。这意味着你多次调用它。当您尝试向同一请求发送多个响应时,会看到您看到的错误。你不能这样做。
我不确切地知道您要完成的内容,但您可以在for
循环中累积结果并在for
循环后发送一个响应,或者您可以发送响应后立即中断或退出for
循环。关键是你只能发送一个回复。