美文网首页
Node.js 路由

Node.js 路由

作者: ElfACCC | 来源:发表于2018-04-26 14:11 被阅读6次

    我们需要的所有数据都会包含在 request 对象中,该对象作为 onRequest() 回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的 Node.JS 模块,它们分别是 url 和 querystring 模块。

    找出浏览器请求的 URL 路径

    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 和 /upload 的请求可以使用不同的代码来处理。稍后我们将看到这些内容是如何整合到一起的。

    现在我们可以来编写路由了,建立一个名为 router.js 的文件,添加以下内容:

    router.js 文件代码:

    function route(pathname) {

      console.log("About to route a request for " + pathname);

    }

    exports.route = route;

    在添加更多的逻辑以前,我们先来看看如何把路由和服务器整合起来。

    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,使得路由函数可以被注入到服务器中:

    index.js 文件代码:

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

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

    server.start(router.route);

    相关文章

      网友评论

          本文标题:Node.js 路由

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