Node.js 路由

Node.js 路由

我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码。
因此,我们需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST 参数。
我们需要的所有数据都会包含在 request 对象中。但是为了解析这些数据,我们需要额外的 Node.JS 模块,它们分别是 url 和 querystring 模块。

var http = require('http');
var url = require('url');
http.createServer(function(request,response){
    response.writeHead(200,{'Content-Type' : 'text/html; charset=UTF-8'});
    if(request.url != '/favicon.ico'){
        var pathname = url.parse(request.url).pathname;
        console.log("Request for " + pathname + " received.");
        response.end('');

    }   
}).listen(8000);

console.log('Server running at http://127.0.0.1:8000');

然后我们访问http://127.0.0.1:8000/login,查看后台输出:
这里写图片描述
我们的应用现在可以通过请求的 URL 路径来区别不同请求了。

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

module.exports = {

    login : function(req,res){
        res.write('我是login方法');
    },

    register : function(req,res){
        res.write('我是register方法');
    }


}

首先,我们来扩展一下之前的代码:

var http = require('http');
var url = require('url');
var router = require('./router');
http.createServer(function(request,response){
    response.writeHead(200,{'Content-Type' : 'text/html; charset=UTF-8'});
    if(request.url != '/favicon.ico'){
        var pathname = url.parse(request.url).pathname;
        pathname = pathname.replace(/\//,'');   //替换掉前面的'/'
        console.log("Request for " + pathname + " received.");
        router[pathname](request,response);
        response.end('');

    }   
}).listen(8000);

console.log('Server running at http://127.0.0.1:8000');

这里写图片描述

这里写图片描述

这里写图片描述

我们的HTTP服务器已经在使用路由模块了,并会将请求的路径传递给路由。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值