无法弄清楚如何向服务器写回复。
现在我有一个将数据发送到服务器的登录表单。在服务器端,我检查该数据是否与.json文件中的数据具有相同的值,如果一切正确,我想发送响应。
if (login == "login") { // if POST request comes wiht 'login' parameter
fs.readFile("JSON/DB.json", "utf8", function (err, data) {
var jsonFileArr = []; // Data from .json
jsonFileArr = JSON.parse(data);
var logPost = loginData.log; // 'log' data from request
var gotData = jsonFileArr.find(function (obj) {
// Search for the same 'log' data in .json
return obj.log === logPost;
});
if (gotData === undefined) { // No same log
console.log("ERROR: Wrong 'log' or 'pass'")
}
else if (gotData.log == logPost) { // if there is the same 'log' ,
// check for same 'pass'
if (gotDaten.pass == passPost) { // Same 'pass' found , send the response
console.log("Send Response");
response.writeHead(200, { 'Content-Type': 'application/json', });
var resObject = { "status": "OK" };
var json = JSON.stringify(resObject);
response.end(json);
console.log(json);
}
else
console.log("ERROR: Wrong 'log' or 'pass' ");
}
});
}
else {
console.log("Wrong request");
}
响应没有被发送,也许我如何设置Node http服务器有问题。如何正确编写服务器响应?
此外,当我尝试使用response.write()
时,它会给我write after end
错误。
这是整个Node JS服务器:jsfiddle
固定
发现问题,我只需将代码移动到调用页面的位置,然后创建else if
循环而不是if
答案 0 :(得分:1)
您可以将select * from view
order by order_no desc/asc
与response.setHeader(name, value)
试试这个
res.send(data)
答案 1 :(得分:1)
如果您使用快递,则可以仅使用response.json(json)