12、Node.js 路由

这里实现的好像就是把路由和服务器相结合起来。具体需要引入 url 模块和 http 模块
为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码
需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST 参数,所以需要引入url 和 querystring模块

#####################################################################################
通过给 onRequest() 函数加上一些逻辑,用来找出浏览器请求的 URL 路径:
//1_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('love A');
        response.end();
    }
    var server= http.createServer(onRequest);
    server.listen(8888);
    console.log('server has started');
}

exports.start = start;

现在可以通过请求的 URL 路径来区别不同请求了--这使我们得以使用路由(还未完成)来将请求以 URL 路径为基准映射到处理程序上
在我们所要构建的应用中,这意味着来自 /start 和 /upload 的请求可以使用不同的代码来处理。稍后我们将看到这些内容是如何整合到一起的。
//1_router.js

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

exports.route = route;

相应扩展 index.js,使得路由函数可以被注入到服务器中:
//1_index.js

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

server.start(router.route);

 

posted @ 2018-06-20 20:33  Alos403  阅读(229)  评论(0编辑  收藏  举报