前端攻城狮让前端飞程序员

Node.js之路由

2018-03-01  本文已影响11人  LemonnYan

一、路由简介

  • 路由,顾名思义,是指我们要针对不同的URL有不同的处理方式。例如处理/start的“业务逻辑”就应该和处理/upload的不同。
  • 路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求。
  • 路由是由一个 URI、HTTP 请求(GET、POST等)和若干个句柄组成。
  • 我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码。因此,我们需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST 参数。
  • 每一个路由都可以有一个或者多个处理器函数,当匹配到路由时,这个函数将被执行。

二、实例

接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录,如在D盘创建node-test文件夹。


image.png

1、创建服务端文件server.js

//server.js
var http=require('http');
var url=require('url');

function start(route) {
    function onRequest(req,res) {
        // 解析请求,包括文件名
        var pathname=url.parse(req.url).pathname;
        // 输出请求的文件名
        console.log('request for'+pathname+'received');
         //调用路由方法
        route(pathname);
        // Content Type: text/plain
        res.writeHead(200,{'Content-Type':'text/plain'});
        // 响应文件内容
        res.write('hello world');
        // 发送响应数据
        res.end();
    }
    // 创建服务器
    http.createServer(onRequest).listen(8888);
    console.log('server has started');
}

exports.start=start;

2、创建路由文件router.js

//router.js
function route(pathname) {
    console.log('about to route a request for'+pathname);
}

exports.route=route; 

3、默认执行文件index.js

//index.js
var server=require('./server.js');
var router=require('./router.js');

server.start(router.route);

4、执行文件及结果

终端:


image.png

浏览器端:


image.png
上一篇 下一篇

猜你喜欢

热点阅读