首页 > 代码库 > Nodejs根据具体请求路径执行具体操作

Nodejs根据具体请求路径执行具体操作

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


本文出自 “素颜” 博客,请务必保留此出处http://suyanzhu.blog.51cto.com/8050189/1894056

Nodejs根据具体请求路径执行具体操作