2012-04-02 2 views
0

Я пытаюсь настроить базовый сервер node.js и получить ошибку, которую я не могу понять. У меня есть 4 файла: index.js, server.js, router.js, requestHandlers.jsНастройка базового сервера node.js

index.js

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

var handle = {} 
handle["/"] = requestHandlers.start; 
handle["/start"] = requestHandlers.start; 
handle["/upload"] = requestHandlers.upload; 

server.start(router.route, handle); 

server.js

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

function start(route, handle) { 
    function onRequest(request, response) { 
    var pathname = url.parse(request.url).pathname; 
    console.log("Request for " + pathname + " received"); // 2nd log-- works fine 

    route(handle, pathname); 

    response.writeHead(200, {'Content-Type': 'text/plain'}); 
    response.write('Hello World'); 
    response.end(); 
    } 

    http.createServer(onRequest).listen(8888); 
    console.log("Server has started."); //1st log -- works fine 

}; 
exports.start = start; 

router.js

function route(handle, pathname) { 
    console.log("About to route a request for " + pathname); //3rd log -- works fine 
    console.log(handle); // THIS IS THE PROBLEM returns ---> { '/': undefined, '/start': undefined, '/upload': undefined } 
    console.log(pathname); //works fine -- returns "/" 
    console.log(typeof handle[pathname]); //undefined 
    if (typeof handle[pathname] === 'function') { 
     handle[pathname](); //never called because above evaluates to undefined 
    } 
    else { 
     console.log("No request handler found for " + pathname); 
    } 
} 

exports.route = route; 

requestHandlers.js // код никогда не попадает сюда

function start() { 
    console.log("Request handler 'start' was called") 
} 

function upload() { 
    console.log("Request handler 'upload' was called") 
} 

exports.start = start; 
exports.upload = upload; 

Я перешел через это 100 раз и чувствую себя довольно уверенно в том, что он делает, поэтому, надеюсь, есть только небольшая вещь, которую мне не хватает. благодаря!

+0

Как обмениваться ошибкой? – Hubro

+0

Я прокомментировал в коде, где ошибка. мои свойства объекта возвращаются как неопределенные –

ответ

7

Я думаю, что вы случайно забыли глагол (требуется).

var requestHandlers = require("./requestHandlers"); 
+0

i new это было что-то маленькое. спасибо –

+1

@ nic-meiring, если этот ответ решил вашу проблему, пожалуйста, отметьте его как правильный ответ – Hubro

+0

эй извините. когда это было изначально ответили, было слишком рано отмечать как правильные. Отметили это сейчас –

Смежные вопросы