我们知道Express是一个基于NodeJS的非常优秀的服务端开发框架,本篇将介绍express框架的route路由。如果你还是不太理解,相信看完本篇文章将会有些收 获的。
express 封装了多种 http 请求方式,我们主要只使用 get和post,可以使用app.all获取所以请求方式,回调函数有两个参数分别是 req 和 res,代表请求信息和响应信息。
-
req.query
: 处理 get 请求
-
req.params
: 处理 /:xxx 形式的 get 请求
-
req.body
: 处理 post 请求
-
req.param()
: 可以处理 get 和 post 请求,但查找优先级由高到低为req.params→req.body→req.query
例如:
获取表达post的参数
var username=req.body.name;//获取post参数 var password=req.body.password;
获取get参数
访问URL:http://localhost:3000/test?id=110&password=120
获取代码:
app.get('/test',function(req,res){ res.send("id: "+req.query.id+" password: "+req.query.password); })
结果:
一. *通配URL
例如:
app.get('/test/*',function(req,res){ res.send(req.originalUrl);//req.originalUrl获取当前URL });
*号可以通配URL为localhost:3000/test/.......的URL
运行结果:
二. /:id的占位标识符URL
例如:
app.get('/test/:userid',function(req,res){ res.send("userid: "+req.params.userid);//req.params.userid获取userid的值 });
运行结果:
不能继续使用/
三.next()权限控制转移
express的路由控制有个next()功能,在定义了多个路由的时候,使用next对匹配的url会按顺序执行,
如果不使用next进行权限转移,只会执行第一个满足的路由规则。
next() 函数用于将当前控制权转交给下一步处理,如果给 next() 传递一个参数时,表示出错信息
例如:
app.get('/test/*',function(req,res,next){ //res.send("userid:");//要进行转移,不要响应客户端 req.temp="给你控制权"; next();//把权限转移到下一个路由 }); app.get('/test/next',function(req,res){ res.send("content: "+req.temp); })
访问URL:http://localhost:3000/test/next满足这两个路由规则
运行结果:
next()一般用来编写中间件
- 中间件一般不直接对客户端进行响应,而是对请求进行一些预处理,再传递下去;
- 中间件一般会在路由处理之前执行;
比如:
// 检查用户是否登录中间件,所有需要登录权限的页面都使用此中间件
function checkLogin (req, res, next) {
if (req.session.user) {
next();//检验到用户已登入,转移权限阁下一个路由
} else {
res.redirect('/');//否则,页面重定位,不执行下面路由
}
}
相关推荐
NodeJs 封装静态WEB服务、 路由、EJS模板引擎、GET、POST; Nodejs 路由封装 封装仿照express的路由
Nodejs 路由模块封装、封装仿照 express的路由主讲教师:(大地)合作网站:www.itying.com目录模块化的方式封装 1封装仿照 expres
本篇文章主要介绍了nodejs开发——express路由与中间件 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这个是把nodejs开发指南中的博客实例,使用最新的nodejs 与 express实现,完成了书中的最简单的功能。
在用 Express 的时候,路由是我最困惑的事之一。知道用 app.get(‘*’) 可以处理所有页面,但这样除了自定义的其他路由外,静态文件是被忽略的。最近在写一个小工具的时候,找到了一个解决方案: 代码如下:var ...
RESTful-api-nodejs-express 使用 NodeJS 和 Express 4.0 构建 RESTful API 堆 MongoDB ExpressJS NodeJS 运行应用程序 确保你安装了 Node 和 npm 克隆 repo:git clone 安装应用程序:npm install 启动服务器:...
基于nodejs技术栈,使用 express-generator 脚手架生成一个express基础项目模板,使用 lowdb 本地 json 文件数据存储方式开发的一个 "记账本" 案例。 本地服务启动基于nodemon,需安装nodemon:`npm i -g nodemon`,...
|—routes————用于存放路由文件。 |—views————-用于存放网页的模板。 |—app.js————应用程序的启动脚本。 |—package.json——项目的配置文件。 2..创建express服务器 //app
主要介绍了详解NodeJS框架express的路径映射(路由)功能及控制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
nodejs框架express,博客例子。有完善的路由以及前端页面
使用NodeJS Express和Nginx代理的UW SAML服务提供商 此存储库包含使用Express的NodeJS Web应用程序的工作示例,该应用程序可以充当SAML服务提供者来通过UW身份提供者授权用户。 它还包括一个nginx conf,可以轻松地...
本项目是基于Nodejs的练习手项目,期间参考了慕课网(代码结构及路由全都重新改造),在老师所讲的基础上增加了很多的功能和完善,项目基于Express 4.15版本,,代码采用Es6编写,代码已加注释,提高了阅读性和维护...
在本篇文章里小编给大家整理的是关于Nodejs封装类似express框架的路由实例内容,有需要的朋友们学习下。
基于nodejs+express+vue+mysql的前后端分离在线订餐系统源码+sql数据库.zip 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对...
缩短网址这是在Nodejs Express.js和Firebase上构建的URL缩短项目(后端)所用技术HTML Node.js Express.js Firebase身份验证Axios.JS安装npm初始化NPM我表示Firebase管理员npm install正文解析器用法首先安装所有npm...
nodejs express 前端、后端、数据库、路由、测试 完整流程
Express: ?web application framework for?Node.js?Express 是一个简洁、灵活的 node.js Web 应用开发框架, 它提供一系列强大...路由功能 Session使用 页面提示 页面访问控制 开发环境: Ubuntu MonogoDB: v2.6.4 nodej