OnceIO(Node.JS)的路由(Routing)、路由方法和路由变量


发布人 张春亮  发布时间 1478058875870
关键字 OnceIO  Node.JS 

 

路由定义

路由用于确定应用程序如何响应对特定端点的客户机请求,包含一个 URI(或路径)和一个特定的 HTTP 请求方法(GET、POST 等)。

每个路由可以具有一个或多个处理程序函数,这些函数在路由匹配时执行。

路由定义采用以下结构:

app.METHOD(PATH, HANDLER)

其中:

  • app 是 OnceIO 的实例。
  • METHOD 是 HTTP 请求方法, 如get/post。
  • PATH 是服务器上的路由路径。
  • HANDLER 是在路由匹配时执行的函数。

路由路径

多个路径可以用数组表示,例如:

此路由路径将匹配 apple, banana 和 strawberry

app.get(['/apple', '/banana', '/strawberry'], function(req, res) {
  res.send('fruit')
})

路径可以用正则表达式表示,例如:

此路由路径将匹配 abcd、abbcd、abbbcd 等。

app.get(/ab*cd/, function(req, res) {
  res.send('/ab*cd/')
})  

此路由路径将匹配名称中具有“a”的所有路由。

app.get(/a/, function(req, res) {
  res.send('/a/')
})

此路由路径将匹配 butterfly 和 dragonfly,但是不匹配 butterflyman、dragonfly man 等。

app.get(/.*fly$/, function(req, res) {
  res.send('/.*fly$/')
})

路由变量

路径中可以加入变量,例如:

此路由路径将匹配所有路由,路径的第一个和第二个斜杠之间的内容会被存入 req.params.id 中。如路径为 '/1234/5678',req.params.id 的值将为 '1234'。

app.get('/:id', function(req, res){
  res.send(req.params.id)
})

可以将路由的第三个参数设置为 { mode: 'loose' },令路由路径匹配所有以其开头的路径,例如:

此路由路径将匹配所有以 '/OnceAcademy' 开头的路径,比如 '/OnceAcademy'、'/OnceAcademy/routing'、'/OnceAcademy/middleware',但是不匹配 '/OnceAcademyRouting'、'/OnceAcademyMiddleware'。

app.get('/OnceAcademy', function(req, res) {
  res.send('OnceAcademy')
}, { mode: 'loose' })

响应方法

下表中响应对象 (res) 的方法可以向客户机发送响应,并终止请求/响应循环。如果没有从路由处理程序调用其中任何方法,客户机请求将保持挂起状态。

方法 描述
res.end() 结束响应进程。
res.redirect() 重定向请求。
res.send(statusCode, text) 设置响应状态码(默认为 200)并在 text 为空时以响应主体形式发送其字符串表示。text 是选填参数,可以是 html 文件、json 变量等,以响应主体形式发送。
res.send(json) 发送 JSON 响应。
res.sendFile() 以字节流形式发送文件。
res.cookie(name, value, options) 设置 cookie 的名称和值,将其随响应一起发送。

 

 

 OnceIO地址:  https://github.com/OnceDoc/onceio

 

 





回复 (0)
  • #
 近期最热
  1. OnceVI前后端分离的数据可视化报表工具简介
  2. OnceIO(Node.JS)中的模板引擎是什么及MVC设计模式的使用与实现
  3. OnceIO(Node.js)模块拦截与注入:模板文件路由重定向与Model数据改写
  4. OnceIO(Node.JS)的网页(模板)的引用与深层嵌套
  5. OnceIO(Node.JS)模块开发:模块注册、模块路由、静态文件重定向以及如何开发与设计一个功能扩展模块
  6. 传言Github正在寻求第二轮融资,或面临估值下降、清算或被微软收购
  7. 如何搭建个人SASS云盘:30秒快速安装OnceDoc企业私有网盘
  8. 在OnceIO(Node.JS)中用Redis储存Session
  9. 用OnceIO(NodeJS)搭建简单的web服务器
  10. NodeJS教程:基于OnceIO框架实现文件上传和验证
  11. NodeJS中的Middleware是什么?在OnceIO中创建和使用中间件

 相关文章
  1. 在OnceIO(Node.JS)中用Redis储存Session
  2. OnceIO(Node.js)模块拦截与注入:模板文件路由重定向与Model数据改写
  3. OnceIO(Node.JS)模块开发:模块注册、模块路由、静态文件重定向以及如何开发与设计一个功能扩展模块
  4. 模块安装教程:5秒为OnceDoc扩展新功能
  5. NodeJS教程:基于OnceIO框架实现文件上传和验证
  6. OnceIO(Node.JS)中Session简介与Cookie的关系和使用方法
  7. OnceIO(Node.JS)服务器端Cookie设置、添加、删除、显示及其实现原理
  8. OnceIO(Node.JS)的网页(模板)的引用与深层嵌套
  9. OnceIO(NodeJS)中的服务器端缓存、模板预加载和静态资源文件的缓存和Gzip压缩机制
  10. NodeJS中的客户端缓存、浏览器缓存、304缓存和OnceIO的缓存控制

 关键字
OnceIO Node.JS

 关注
关注
OnceOA

OnceOA