路由需要的信息,包括URL 及GET 或 POST参数。路由根据这些参数执行相应的js处理程序,因此,需要在HTTP请求中提取出URL以及GET或POST参数。这些请求参数在request对象中,这个对象是onRequest()回调函数的第一个参数。需要提取这些信息,需要Node.js的模块,url和querystring模块。

                url.parse(string).query

                         |

     url.parse(string).pathname    |

             |           |  

 http://localhost:8888/start?foo=bar&hello=world

    querystring(string)["foo"]

                querystring(string)["hello"]

当然可以用querystring模块来解释POST请求体中的参数。

可以通过不同的请求的URL路径来映射到不同的处理程序上面,路由就是做这一个工作。

例如来自:/start和/upload的请求可以使用不同的程序来处理。

下面是一个例子:

---index.js

---server.js

---route.js

编写一个路由,route.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);//在这里可以对不同的路径进行处理//if(pathname =="...") response.writeHead不同的信息之类response.writeHead(200, {"Content-Type" : "text/plain"});response.write("Hello World");response.end();}http.createServer(onRequest).listen(3000);console.log("Server has started.");
}
exports.start = start;

编写启动文件,index.js

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

在客户端启动应用,服务器启动,开始监听3000端口:

node index.js

在浏览器端输入一个请求URL:

http://127.0.0.1:3000/

看到相应的客户端输出:

浏览器显示:

转载于:https://www.cnblogs.com/IanI/p/3990210.html

node.js-------使用路由模块相关推荐

  1. Node.js:路由

    ylbtech-Node.js:路由 1.返回顶部 1. Node.js 路由 我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码. 因 ...

  2. node.js express php,nodejs开发——express路由与中间件

    路由 通常HTTP URL的格式是这样的: http表示协议. host表示主机. port为端口,可选字段,不提供时默认为80. path指定请求资源的URI(Uniform Resource Id ...

  3. Node.js 系列:构建原生 Node.js 应用

    原生 Node.js 应用 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效 Nod ...

  4. 第一个实例-----我与node.js的第一步接触

    因为最近有东西需要用到node.js,所以我就在linux虚拟机上安装了node.js,对于javascript,也是第一次接触. 刚入门,就是一个实用的案例,毕竟这些东西都是实践出真知.这个案例就是 ...

  5. node.js 搭建blog

    搭建开发环境并模拟交互数据 一.实验说明 下述介绍为实验楼默认环境,如果您使用的是定制环境,请修改成您自己的环境介绍. 三.功能模块分析与设计 四.搭建开发环境 LouBlog 使用 nodeJS 搭 ...

  6. node.js学习笔记

    # node.js学习笔记标签(空格分隔): node.js---## 一 内置模块学习 ### 1. http 模块 ``` //1 导入http模块 const http =require('ht ...

  7. Node.js 入门到干活,10 个优质项目就够了!

    Node.js 在很多大公司都有不错的实践,比如:淘宝.天猫 Web 版,很多页面都是在 Node 服务器上渲染的.还有各种脚手架.前端打包发布工具.构建生态的小工具,也基本都是 Node.js 编写 ...

  8. Node.js 入门详解 (三)

    目录 1. 初识Express 1.1 Express简介 1.1.1 什么是Express 1.1.2 进一步理解 Express 1.1.3 Express能做什么 1.1.4 Express 中 ...

  9. node.js 针对不同的请求路径(url) 做出不同的响应

    边看这个边写的: http://wenku.baidu.com/link?url=C4yLe-TVH6060u_x4t34H3Ze8tjoL7HjJaKgH-TvHnEYl-T_gAMYwhmrCeM ...

  10. Node.js 入门知识点总结

    Noed.js 快速入门 前言 node.js 入门 环境配置 hello node.js node.js 获取参数 node.js 模块系统 node.js 路由 node.js 文件操作 使用 n ...

最新文章

  1. LeetCode Remove Element
  2. [hdu1847]博弈,推理
  3. CLR Via CSharp读书笔记(26) - 计算限制的异步操作
  4. [css] 固定的外框尺寸,里面的图片尺寸不固定,如何让图像自适应外框呢?
  5. 一文看懂卷积神经网络
  6. Process Kill Technology Process Protection Against In Linux
  7. 解决ajaxSubmit无法传递自动回填和下拉框的数据
  8. CefSharp方法汇总
  9. exFAT硬盘写保护修复远程登录提示到期
  10. Rockchip RK3588 MIPI-DSI2 详解
  11. 【算法专题】数独问题详解
  12. 输入日期判断这一年的第几天
  13. mysql允许远程链接,开放3306端口
  14. Android,上传一张本地图片到服务器,Okhttp的post请求上传图片本地服务器
  15. iOS根据图片比例计算显示大小
  16. 前端开发技术——对象
  17. Windows时钟同步(时间同步)问题
  18. 文献阅读:Improving neural networks by preventing co-adaptation of feature detectors
  19. python unpacking_Python在unpacking上的一个小陷阱
  20. OPENCART之兼容多种浏览器的加入收藏夹扩展功能插件(CROSS-BROWSER BOOKMAR

热门文章

  1. R统计工具:正态性检验
  2. linux dmaengine编程
  3. 信用卡消费退款,商家让客户付手续费,合理吗?
  4. 使用Slim框架实现基本的REST API
  5. winform 鼠标 静止时间_赢得电竞的奥秘,你需要一块好鼠标垫
  6. mysql主键用完了怎么办_MySQL 自增 ID 用完了怎么办?
  7. python程序如何封装成接口_python接口自动化如何封装获取常量的类
  8. android listview 数据同步,android中ListView数据刷新时的同步方法
  9. 如何用python制作九九乘法表_Python一行代码给儿子制作九九乘法表
  10. 关于Unity中的声音管理模块(专题七)