2016-12-21 4 views
3

Ich begann mit dem Studium von node.js. Ich stelle dir während des Studiums Fragen. Wenn ich meinen Code (Server) starte und mich mit localhost verbinde, funktioniert es nicht richtig.Kann die Eigenschaft '/' von undefiniert nicht lesen

Dies ist Fehler: enter image description here

Dies ist mein Code:

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

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; 

Antwort

4

In index.js, vorbei sind Sie requestHandlers.handle, die, anstatt das handle Objekt nicht vorhanden ist, die Sie haben erstellt.

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

Dank Ihnen, ich löse es. :) –

+0

@ 서현서현 Froh ich könnte helfen! –

Verwandte Themen