Node JS写响应

时间:2016-09-20 13:54:35

标签: javascript ajax node.js webix

无法弄清楚如何向服务器写回复。

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

2 个答案:

答案 0 :(得分:1)

您可以将select * from view order by order_no desc/asc response.setHeader(name, value)

一起使用

试试这个

res.send(data)

答案 1 :(得分:1)

如果您使用快递,则可以仅使用response.json(json)