Node.js服务器只是保持加载没有结果。

我一直试图让我的服务器工作,但是当我发送数据时,它只是继续加载,没有结果给出。 这是我的noen.js文件。

var http = require('http'); var url = require('url'); // Configure our HTTP server to respond with Hello World to all requests. var server = http.createServer(function (request, response) { var queryData = url.parse(request.url, true).query; response.writeHead(200, {"Content-Type": "text/plain"}); if (queryData.name) { // user told us their name in the GET request, ex: http://host:8000/?name=Tom var exec = require('child_process').exec; function puts(error, stdout, stderr) {sys.puts(stdout)} exec ("casperjs test.js " + queryData.name + '\n'); } else { response.end("Contact Admin - Not Working\n"); } }); // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(1213); 

谁能帮我解决这个问题吗? 当我去

 127.0.0.1:8000/?name=tom 

我没有得到任何回应,页面进入一个长的加载循环

没有响应。如果情况是真的,那么响应“永不”结束。 写在底部的if

 response.end("something"); 

你会得到回应;

为了获得进程的输出到响应:

https://stackoverflow.com/a/3944751/3018595

 var http = require('http'); var url = require('url'); // Configure our HTTP server to respond with Hello World to all requests. var server = http.createServer(function (request, response) { var queryData = url.parse(request.url, true).query; response.writeHead(200, {"Content-Type": "text/plain"}); if (queryData.name) { // user told us their name in the GET request, ex: http://host:8000/?name=Tom var exec = require('child_process').exec; exec ("casperjs test.js " + queryData.name + '\n',function(err, stdout, stderr) { response.end(stdout); }); } else { response.end("Contact Admin - Not Working\n"); } }); // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(1213); 

您的浏览器正在等待,因为你没有结束你的回应。 你必须调用response.end让你的服务器完成响应,否则它会一直认为响应还没有完成。 我在你的if语句中添加了一行,并testing了你的代码,它工作的很好。

添加行** response.end(“请求处理成功… \ n”); **,假设您需要显示不同的消息以防“else”语句。 我testing了url http://:1213 /?name = tom

 var http = require('http'); var url = require('url'); // Configure our HTTP server to respond with Hello World to all requests. var server = http.createServer(function (request, response) { var queryData = url.parse(request.url, true).query; response.writeHead(200, {"Content-Type": "text/plain"}); if (queryData.name) { // user told us their name in the GET request, ex: http://host:8000/?name=Tom var exec = require('child_process').exec; function puts(error, stdout, stderr) {sys.puts(stdout)} exec ("casperjs test.js " + queryData.name + '\n'); response.end("Request processed successfully...\n"); } else { response.end("Contact Admin - Not Working\n"); } }); // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(1213);