我正在编写节点js应用程序。出于某种原因,我可以加载页面一次,它的工作原理。然后我得到一个错误,说“无法在发送后设置标题”
任何帮助都将不胜感激!感谢。
这是我的代码:
module.exports = {
login: function(req, res) {
login.parseLogin(function(status) {
if(status != true) {
res.end();
}
res.send('{"Success": ' + true + '}');
res.end();
}, "Robert", "C");
},
signup: function(req, res) {
signup.parseSignup(function(status) {
if(status != true) {
res.send(' {"Failed to create account": ' + new Date() + '} ');
res.end();
}
res.send(' {"Account": ' + username + ',"createdAt": ' + new Date() + '} ');
res.end();
});
},
addbit: function(req, res) {
console.log("Addbit");
},
removeBit: function(req, res) {
console.log("RemoveBit");
},
queryBits: function(req, res) {
console.log("QueryBits");
}
};
答案 0 :(得分:1)
您的登录和注册功能中的问题是您检查错误情况,结束响应然后继续并再次发送响应。
if(status != true) {
res.end();
}
应该是
if(status != true) {
return res.end();
}
在第一次加载页面时,在一个或多个这些函数中,值为true,下次为false。
在注册时,它应该是:
if(status != true) {
res.send(' {"Failed to create account": ' + new Date() + '} ');
return res.end();
}
答案 1 :(得分:0)
您可以在if语句之后停止执行,也可以只添加else子句:
if(status != true) {
res.send(' {"Failed to create account": ' + new Date() + '} ');
} else {
res.send(' {"Account": ' + username + ',"createdAt": ' + new Date() + '} ');
}
res.end();