1
這是我的一個名爲serverpaths.js
無法獲取node.js程序的輸出?
var http = require("http");
var url = require("url");
function start() {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
這裏第一個文件是我的第二個文件名爲router.js
function route(pathname) {
console.log("About to route a request for " + pathname);
}
exports.route = route;
這是我的第三個文件命名爲index1.js
var server = require("./serverpaths");
var router = require("./router");
server.start(router.route);
輸出應該是
Server has started
Request for /foo received.
About to route a request for /foo
但我得到的輸出
Server has started
Request for /foo received
我不知道我爲什麼不從路由器即About to route a request for /foo.
感謝的人是worked.actually我在node.js的一個新手,所以只是最後一個問題server.start(router.route)後';'怎麼流將首先運行,它會調用'start'或你可以簡單地解釋流程。我明白每一行都在做什麼,但無法理解實際流程。 – Fresher
'server.start(router.route)'行不會調用router.route函數。它只是將它作爲參數傳遞給server.start函數。然後你可以調用server.start中的函數。 – Brett
在這種簡單的情況下,你也可以在serverpaths.js中執行'var router = require('./ router');'然後在需要時調用'router.route(pathname)'。 – Brett