美文网首页
Node.js-路由

Node.js-路由

作者: 薥劃 | 来源:发表于2020-02-24 11:16 被阅读0次

    为什么要使用路由

    我们使用Node.js的http服务的时候,需要针对不能的Url和不同的方法(Get,Post,等)去做不同的对应,所以我们在接受到请求的时候需要利用路由功能来扩展我们的程序。

    http服务

    首先我们利用http,来构建我们自己的服务,创建server.js,代码如下:

    var http = require("http");
    var url = require("url");
     
    function start() {
      function onRequest(request, response) {
        var pathname = url.parse(request.url).pathname;
        console.log("Request for " + pathname + " received.");
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write("Hello World");
        response.end();
      }
     
      http.createServer(onRequest).listen(8888);
      console.log("Server has started.");
    }
     
    exports.start = start;
    
    start();
    

    此时我们已经创建了一个http服务


    微信截图_20200224110919.png

    路由

    那么要如何利用路由来去区分Url和方法呢?建立一个名为 router.js 的文件,添加以下内容

    function route(pathname) {
        console.log("About to route a request for " + pathname);
      }
       
      exports.route = route;
    

    我们创建了一个路由,输出了一个log,除此之外什么都没有操作。接着,我们去完善我们的服务。将路由函数作为参数传递过去,server.js 文件代码如下

    var http = require("http");
    var url = require("url");
     
    function start(route) {
      function onRequest(request, response) {
        var pathname = url.parse(request.url).pathname;
        console.log("Request for " + pathname + " received.");
     
        route(pathname);
     
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write("Hello World");
        response.end();
      }
     
      http.createServer(onRequest).listen(8888);
      console.log("Server has started.");
    }
     
    exports.start = start;
    

    创建 index.js,使得路由函数可以被注入到服务器中

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

    输出如下

    Server has started.
    Request for / received.
    About to route a request for /
    Request for /favicon.ico received.
    About to route a request for /favicon.ico

    相关文章

      网友评论

          本文标题:Node.js-路由

          本文链接:https://www.haomeiwen.com/subject/ugjmqhtx.html