gpt4 book ai didi

javascript - Node JS 写入响应

转载 作者:行者123 更新时间:2023-12-02 14:10:47 26 4
gpt4 key购买 nike

无法弄清楚如何向服务器写入响应。

现在我有一个登录表单,可以将数据发送到服务器。在服务器端,我检查该数据是否与 .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

最佳答案

您可以将response.setHeader(name, value)res.send(data)结合使用

试试这个

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.setHeader(
'Content-Type', 'application/json');
response.status(200);
var resObject = {
"status": "OK"
};
var json = JSON.stringify(resObject);
response.send(json);
console.log(json);
} else
console.log("ERROR: Wrong 'log' or 'pass' ");
}
});
} else {
console.log("Wrong request");
}

关于javascript - Node JS 写入响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596046/

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