我是NodeJS的新手。NodeJS console.log工作但response.write不
我正在閱讀this book以瞭解它。
我在其中一個請求處理程序模塊中使用以下代碼。 基本上,當我收到來自瀏覽器的請求時,我會發送一個調用該函數並獲取屏幕上顯示的窗口中「DIR」命令的內容。
的index.js文件是一個我作爲運行web應用程序
這是index.js
var server = require("./server.js");
var router = require("./router.js");
var requestHandlers = require("./requestHandlers");
var handle = {};
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);
這是server.js 服務器文件發送請求到路由器
var http = require("http");
var url = require("url");
function start(route, handle)
{
function onRequest(request, response)
{
//console.log("Request recieved!");
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " has been recieved");
response.writeHead(200, {"Content-Type": "text/plain"});
route(handle, pathname, response);
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server started!");
}
exports.start = start;
這是r outer.js 這是使用在index.js(用於將請求映射到它們各自的處理程序)中創建的句柄的路由器。
function route(handle, pathname, response)
{
console.log("About to route the request " + pathname);
if(typeof handle[pathname] == 'function')
{
handle[pathname](response);
}
else
{
console.log("No request handler found for " + pathname);
response.writeHead(404,{"Content Type": "text/plain"});
response.write("404 not found");
response.end();
}
}
exports.route = route;
最後這是那裏的請求被處理,在requestHandlers.js 在這裏,它看起來像的console.log語句工作正常,但Response.Write語句沒有。
var exec = require("child_process").exec;
function start(response)
{
console.log("Request handler 'start' was called.");
exec("dir", function(error, stdout, stderr) {
response.writeHead(200,{"Content Type": "text/plain"});
response.write("Hello Upload!");
response.write(stdout);
response.write("Hello!");
console.log(stdout);
response.end();
});
}
function upload(response)
{
console.log("Request handler 'upload' was called.");
response.writeHead(200,{"Content Type": "text/plain"});
response.write("Hello Upload!");
response.end();
}
exports.start = start;
exports.upload = upload;
任何幫助,將不勝感激
我們需要A)一個完整的例子。上面的代碼片段看起來不錯,但我們需要看到整個圖片。和B)對該程序的行爲進行準確的技術性描述,而不是「不起作用」。它有什麼作用?你在期待什麼?有錯誤消息嗎? –
+1發佈完整的代碼。告訴它目前正在做什麼以及它是什麼**應該做** – CuriousMind
在那裏,我已根據要求進行了更改。 :) –