【发布时间】:2015-05-13 04:11:06
【问题描述】:
我在使用 node.js 时遇到问题,他返回 - 控制台上显示错误:
Error: Can not set after headers They are sent.
这里是我返回错误的代码部分:
app.post ('/ register', function (req, res) {
var = usuarioCadastro req.body.usuario;
var = emailCadastro req.body.email;
var = telefoneCadastro req.body.telefone;
var = senhaCadastro req.body.senha;
console.log ("User:" + usuarioCadastro);
console.log ("Email:" + emailCadastro);
console.log ("Telephone" + telefoneCadastro);
console.log ("Password" + senhaCadastro);
pool.query('SELECT * FROM users WHERE email = ?',[emailCadastro], function(err, rows, fields) {
if (err) throw err;
for (var i in rows){ var emailBanco = rows[i].email; }
if(emailCadastro === emailBanco){
console.log("Email já foi cadastrado");
res.set('Content-Type', 'application/json');
res.send({ code: '303', mensagem:'This email already signup' });
}else{
var sql = {usuario:usuarioCadastro,email:emailCadastro,senha:senhaCadastro};
pool.query('INSERT INTO users SET ?',[sql], function(err, rows, fields) {
if (err) throw err;
console.log("Novo usuario cadastrado");
res.send({ code: '200', mensagem:'Sucess, welcome to trimtrim' });
});/*Second Query*/
}/* Else */
});/* 第一个查询*/
我一直在研究,据我所见,表情只能发送一次。我需要发送更多次。我该怎么办?
【问题讨论】:
-
不,你没有。您实际上只能发送一次,这就是 HTTP 的工作原理。因此,相反,您可以聚合所有需要发送的标头,然后一直到最后,使用您需要的标头调用
res.headers,然后是正常的数据响应。