javascript - 无法获取node.js程序的输出?

标签 javascript node.js

这是我的第一个文件,名为serverpaths.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

我不知道为什么我没有从路由器获得输出,即关于路由/foo 的请求。

最佳答案

您需要在某个时刻调用传递给启动函数的函数。

var http = require("http");
var url = require("url");

function start(route) {
  function onRequest(request, response) {
    var pathname = url.parse(request.url).pathname;
    console.log("Request for " + pathname + " received.");
    route(pathname);
    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;

关于javascript - 无法获取node.js程序的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23422791/

相关文章:

javascript - 仅在特定宽度以下应用 Javascript

javascript - 我可以在 ncyBreadcrumb 中有一个动态的 parent 吗?

javascript - css中字符串的模式匹配

node.js - Node js集群环境下Cron Job多次运行

node.js - 无法使用 @ngtools/webpack 创建 Angular 5 通用服务器应用程序应用程序包

javascript - 为什么我不需要调用运算符来调用 JavaScript 中的函数?

javascript - 将 JavaScript 字符串转换为 JavaScript 文字

mysql - 如何在nodejs中使用sequelize获取表的所有字段?

node.js - 错误 : Cannot find module 'commander'

javascript - 发送一些输入后如何获取输入框的文本值?