1.处理请求模块(requestHandlers.js)

    function start(){

    console.log("Request handler 'start' was called ");

    return "Hello start";

    }

    

    function upload(){

    console.log("Request handler 'upload' was called ");

    return "Hello Upload";

    }

    

    exports.start = start;

    exports.upload = upload;

2.路由模块(route.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;

3.服务器模块(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;

    if (pathname != "/favicon.ico") {

    console.log("Request for" + pathname + " received");

    response.writeHead(200,{"Content-Type":"text/plain"});

    

    var content = route(handle,pathname);

    response.write(content);

    response.end();

    }

    }

    

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

    console.log("Server has started");

    }

    

    exports.start = start;

4.调用相应模块(index.js)

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

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

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

    

    var handle = {};

    handle["/"] = requestHandlers.start;

    handle["/start"] = requestHandlers.start;

    handle["/upload"] = requestHandlers.upload;

    

    server.start(router.route,handle);

5.执行index.js

    node index.js

    访问:http://localhost:8888/start

    输出结果:

        Hello start

    访问:http://localhost:8888/upload

    输出结果:

        Hello Upload

    访问:http://localhost:8888/other

    输出结果:

        404 Not found

QQ截图20181014143201.jpg