2017-06-07 9 views
1

Node.jsが新しく、HTTPサーバーを作成しようとしていますが、何らかの理由で購入URL要求用にルーターを置くと、機能しません。ルーターが定義されていません。Node.js

マイコード:

Server.js

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


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

Index.js

var server = require("./server"); 
var router = require("./router"); 

server.start(router.route); 

Router.js

function route(pathname) { 
    console.log("About to route a request for " + pathname); 
} 

exports.route = route; 

のNode.jsを介してサーバーを起動しようとすると、それは言うフォローエラー:

ルートが定義されていない

ルート(パス名)。

どうすればこの作品を作成できますか?

+0

@Georgeさん、ありがとうございました。もしあなたが望むなら、あなたはそれを答えとして置くことができます。私はアップホートし、正しいコメントとしてマークします。 – Monteiro

+0

そして、間違いの人には申し訳ありませんが、私はこれで新しく、時には(多くの)それらの初心者の間違いが起こります。 – Monteiro

答えて

3

routestart関数に渡していますが、パラメータが定義されていない場合は、追加する必要があります。

function start(route) { 
    function onRequest(request, response) { 
     var pathname = url.parse(request.url).pathname; 
     console.log("Request 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;"); 
} 
関連する問題