节点返回错误 - "路由未定义"

时间:2017-02-16 19:12:40

标签: javascript node.js

我是节点的新手,只是在我找到的教程中运行。我在编写的代码中打了一针,据我所知,应该从路由器文件中导入路由功能。但是,服务器在尝试加载返回标题中的错误的页面时遇到错误。

这是我的代码:

// index.js; my main file I run through cmd
var server = require("./server");
var router = require("./router")

server.start(router.route);

// router.js; the route function is stored here
function route(pathname) {
    console.log("About to rout request for " + pathname);
}

exports.route = route;

// server.js; the meat
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");

        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;

虽然我在问,有人可以解释一下server.start(router.route)行是如何工作的吗?我认为启动功能没有参数。

1 个答案:

答案 0 :(得分:2)

  

虽然我在问,有人可以解释一下server.start(router.route)行是如何工作的吗?我认为启动功能没有参数。

^这就是为什么它不起作用。

启动函数中未定义

route。将开始功能更改为:

function start(route) { ...