2016-12-21 5 views
3

node.js를 공부하기 시작했습니다. 공부하는 동안 질문하겠습니다. 내 코드 (서버)를 실행하고 localhost에 연결할 때 제대로 작동하지 않습니다. enter image description here정의되지 않은 '/'속성을 읽을 수 없습니다.

이 내 코드입니다 :

는 오류가

하는 index.js

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

var handle = {}; 
handle['/'] = requestHandlers.view; 
handle['/view'] = requestHandlers.view; 
handle['/create'] = requestHandlers.create; 

server.start(router.route, requestHandlers.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('\nrequest for ' + pathname + ' received.'); 

     response.writeHead(200, {'Content-Type' : 'text/plain'}); 
     // route(handle, pathname); // injected function call 
     var content = route(handle, pathname); 

     response.write(content); 
     response.end(); 
    } 

    http.createServer(onRequest).listen(8000); 

    console.log('server has started.'); 
} 

exports.start = start; 

router.js

function route(handle, pathname) { 
    console.log('about to route a request for ' + pathname); 
    if (typeof handle[pathname] === 'function') { 
     return handle[pathname](); 
    } else { 
     console.log('no request handler found for ' + pathname); 
     return "404 Not found"; 
    } 
} 

exports.route = route; 

requestHandlers.js index.js에서

function view(response) { 
    console.log('request handler called --> view'); 
    return "Hello View"; 
} 

function create(response) { 
    console.log('request handler called --> create'); 
    return "Hello Create"; 
} 

exports.view = view; 
exports.create = create; 

답변

4

, 당신은 오히려 당신이했습니다 handle 객체보다, 존재하지 않는 requestHandlers.handle을 전달하는 만들어진.

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

var handle = {}; 
handle['/'] = requestHandlers.view; 
handle['/view'] = requestHandlers.view; 
handle['/create'] = requestHandlers.create; 

// server.start(router.route, requestHandlers.handle); 
server.start(router.route, handle); 
+1

덕분에 문제를 해결했습니다. :) –

+0

@ 이서현 기꺼이 도울 수있어! –

관련 문제