仅在第二次请求时将响应写入页面
response written to page only on second request
var http = require('http');
var fs = require('fs');
var path = process.argv[2];
var str="";
function onRequest(request, response) {
str += "";
console.log("Request received" + path);
fs.readdir(path, function(err, items) {
str += items;
});
response.writeHead(200, {"Context-Type": "text/plain"});
response.write(new Buffer(str).toString());
response.end();
}
http.createServer(onRequest).listen(8000);
上面的代码片段创建了一个 http 服务器,它从用户那里获取目录路径作为参数。发出 http 请求以获取目录中可用的文件列表,并将它们作为响应发回。
仅在第二次请求时将响应写入页面。该页面在第一次请求时显示为空。
谁能帮忙。提前致谢!!
Javascript 是非阻塞的,所以
response.writeHead(200, {"Context-Type": "text/plain"});
response.write(new Buffer(str).toString());
response.end();
会在
之前执行
str += items;
有
fs.readdir(path, function(err, items) {
// Handle error
str += items;
response.writeHead(200, {"Context-Type": "text/plain"});
response.write(new Buffer(str).toString());
response.end();
});
它将在readdir
之后发送响应。
并且在 Javascript 中不会为每个新请求启动程序(如在 PHP 中)。所以你的全局变量将在所有请求之间共享。如果您不希望将 var str="";
放入 onRequest
.
如果您有多个路由,您还想查看类似 express 的内容,因为 http
模块不包含路由。
var http = require('http');
var fs = require('fs');
var path = process.argv[2];
var str="";
function onRequest(request, response) {
str += "";
console.log("Request received" + path);
fs.readdir(path, function(err, items) {
str += items;
});
response.writeHead(200, {"Context-Type": "text/plain"});
response.write(new Buffer(str).toString());
response.end();
}
http.createServer(onRequest).listen(8000);
上面的代码片段创建了一个 http 服务器,它从用户那里获取目录路径作为参数。发出 http 请求以获取目录中可用的文件列表,并将它们作为响应发回。
仅在第二次请求时将响应写入页面。该页面在第一次请求时显示为空。
谁能帮忙。提前致谢!!
Javascript 是非阻塞的,所以
response.writeHead(200, {"Context-Type": "text/plain"});
response.write(new Buffer(str).toString());
response.end();
会在
之前执行str += items;
有
fs.readdir(path, function(err, items) {
// Handle error
str += items;
response.writeHead(200, {"Context-Type": "text/plain"});
response.write(new Buffer(str).toString());
response.end();
});
它将在readdir
之后发送响应。
并且在 Javascript 中不会为每个新请求启动程序(如在 PHP 中)。所以你的全局变量将在所有请求之间共享。如果您不希望将 var str="";
放入 onRequest
.
如果您有多个路由,您还想查看类似 express 的内容,因为 http
模块不包含路由。