gpt4 book ai didi

javascript - 发送后 Node 抛出新错误 ('Can\' t 设置 header 。')

转载 作者:行者123 更新时间:2023-12-03 04:45:24 24 4
gpt4 key购买 nike

我的一个 Node 调用遇到了上述问题。据我所知,此错误表明您是否多次调用 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");
});

最佳答案

您正在 for 循环内执行 res.send() 。这意味着您多次调用它。您看到的错误是当您尝试向同一请求发送多个响应时引起的。你不能这样做。

我不知道您想要完成什么,但您可以在 for 循环中累积结果并在 for 循环后发送一个响应,或者您可以在发送响应后立即中断或退出 for 循环。重点是您只能发送一个回复。

关于javascript - 发送后 Node 抛出新错误 ('Can\' t 设置 header 。'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42893034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com