我遇到了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 */
}); / * First Query * /
我一直在研究,从我看到的,表达式只能发送一次。我需要发送更多次。我该怎么办?
答案 0 :(得分:0)
您只能发送一次标头。聚合您的消息并在循环后发送所有消息。
connection.release ();
var msg = '';
for (var i in rows) {
if (emailCadastro === rows [i] .email) {
console.log ("Email database:" + rows [i] .email);
if (msg.length>0) msg += '<br/>';
msg += 'E-mail already registered: ' + rows[i].email;
errodeForm ++;
}
} // For
if (msg.length>0) res.json ({code: 303 Message: msg});