2017-02-16 48 views
0

我是全新的節點,只是通過我發現的教程運行。我在代碼中寫入了正如我所理解的應該從路由器文件導入路由功能。但是,服務器在嘗試加載標題中返回錯誤的頁面時遇到錯誤。節點返回錯誤 - 「路由未定義」

這裏是我的代碼:

// 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)線工作中?我認爲啓動函數沒有參數。

回答

2

雖然我問,任何人都可以解釋如何server.start(router.route)行工作?我認爲啓動函數沒有參數。

^這就是爲什麼它不起作用。

route在啓動功能中未定義。將啓動功能更改爲:

function start(route) { ...

+0

這樣做!謝謝。再次,我只是沿着一個教程,所以我很新,但是這是唯一的方法嗎?你能不能根據需要在啓動函數中導入路由? – jylny

+0

您應該查看express js http://expressjs.com/ –