wns9778.com_威尼斯wns.9778官网

热门关键词: wns9778.com,威尼斯wns.9778官网
wns9778.com > 计算机教程 > Node.js学习笔记 -- Node.js路由

原标题:Node.js学习笔记 -- Node.js路由

浏览次数:143 时间:2019-05-10

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

先说说路由是干嘛的。
路由就是把对应的请求地址,指定到对应的处理方法上。
因此,要为路由提供请求的URL和其他需要的GET以及POST参数,然后路由根据这些数据
执行相应的代码。

#####################################################################################
通过给 onRequest() 函数加上一些逻辑,用来找出浏览器请求的 URL 路径:
//1_server.js

下面问题来了,既然路由需要请求URL和参数,该怎么获取URL请求路径和参数呢?
我们需要的所有的数据都包含在request对象中,该对象最为onRequest()回调函数的第一个参数传递
解析URL和参数用到了Node.js其他模块: url 、 querystring 。
下面分别介绍如何使用 url 和 querystring 获取参数。

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;
  1. url 获取请求的路径与参数

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

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

exports.route = route;
示例:
http://localhost:8888/start?name=jim&age=22

url.parse(string).pathname         →   /start
url.parse(string).query            →   name=jim&age=22

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

代码示例如下:

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

server.start(router.route);
// 引入 http模块
var http = require('http');
// 引入 url 模块
var url = require('url');

// 匿名函数作为参数传递给http.createServer()
http.createServer(function(request,response){
    // 设置 charset=utf-8 否则会乱码
    response.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'});
       //  /start?name=jim&age=22
       console.log("request.url:   " request.url);

    // 获取访问的路径  /start
    var pathname = url.parse(request.url).pathname;
    // 获取参数值 name: jim , age: 12
    var params = url.parse(request.url,true).query; // true 不能缺少,否则会报错
    response.write("访问路径pathname:   " pathname "n");
    response.write("姓名name:   " params.name "n");
    response.write("年龄age:    " params.age);
    console.log("访问路径pathname:" pathname "n" "姓名name:" params.name "n" "年龄age:" params.age);
    response.end();
}).listen(8888);

console.log('server is running http://127.0.0.1:8888/start?name=jim&age=22');

运行结果:
      server is running http://127.0.0.1:8888/start?name=jim&age=22
      request.url:   /start?name=jim&age=22
      访问路径pathname:   /start
      姓名name:   jim
      年龄age:    22

 

2.querystring 获取请求的路劲与参数

示例:
http://localhost:8888/start?name=jim&age=22
querystring.parse(string)['name']         →   jim
querystring.parse(string)['age']           →    22

示例代码:

本文由wns9778.com发布于计算机教程,转载请注明出处:Node.js学习笔记 -- Node.js路由

关键词: wns9778.com

上一篇:JavaScript变量类型检测总结wns9778.com

下一篇:没有了