<强>概述强>
4.0 ExpressJS中提出了新的路由Router.Router好比是一个“迷你版”的表达应用,它没有引入视图或者设置,但是提供了路由应有的API, .use, . get, .param和路线。
<强>示例应用强>
让我们创建一个表达应用,仅仅有少量路线和功能:
-
<李>基础路由:回家,对李>
<李>一个把请求请求打印到控制台的路由中间件李>
<李>一个带参数的路由李>
<李>一个校验特殊参数的路由中间件李>
<李>一个用于登录的路,由响应对与路径/登录的GET和POST请求李>
<李>校验功能:校验传递给某一个路由的参数李>
<强>应用文件架构强>
我们只需要两个文件:
——包。json//构建节点应用所需要的插件 ——服务器。js//构建示例应用的启动文件
我们会把路由代码写如server.js文件。将来为了让示例应用模块化,我们会把这些路由代码分别写入不同的文件,甚至可以为网站的不同组成部分单独定义不同的路由文件。
<>强创建节点应用强>
创建节点应用,我们需要编写package.json文件去定义节点应用依赖的插件。
{ “名称”:“express-router-experiments”, “主要”:“server.js”, “依赖”:{ “表达”:“~ 4.0.0” } } >之前下面继续安装依赖:
美元npm安装现在我们安装了表达,让我们继续编写server.js去处理路由。
<>强创建服务器强>
我们在package.json中指定了主要属性值为server.js,因此表达会使用server.js作为应用的入口文件。
//server.js//基础设置//==============================================var=需要表达(表达); 应用var=表达(); var=process.env港。港| | 8080;//路由//==============================================//示例路由 app.get(/样本,函数(点播,res) { res.send(“这是一个示例!”); });//我们会在这里编写自己的路由//启动服务器//==============================================app.listen(港口); 控制台。日志(“奇迹发生>//server.js …//获取路由器实例 var路由器=express.Router ();//home页面路由(http://localhost: 8080) 路由器。(“/?函数(点播,res) { res.send(“我主页!”); });//关于页面路由(http://localhost: 8080/) 路由器。('/',函数(点播,res) { res.send(“我对页面!”); });//把定义好的路由集成到节点应用中 app.use('/',路由器); … >之前我们前面的代码使用express.Router()生成一个路由实例,并定义路由规则,最后把这个路由实例集成到应用中。现在我们可以通过http://localhost: 8080年访问家里页面,通过http://localhost: 8080/访问关于页面。
请注意:我们可以改变前面定义的路由中默认的根路径(“/?。如果我们把应用程序。使用(“/?路由器)改为应用程序。使用(/app,路由器),那么家页面的访问地址变为http://localhost: 8080/应用程序,对页面的访问地址变为http://localhost: 8080/app/什么。
这是一个非常有用的功能,我们可以利用它创建多个路由实例express.Router()并把这些实例都集成到节点应用中,例如,可以在节点应用中针对不同功能需求创建不同的路由:一个基础路,由一个用于权限校验的路由和其他API路由。如此一来,节点应用变得更加模块化更容易扩展。
<>强创建路由中间件Router.use() 强>
路由中间件实际是一种允许一个请求请求被处理之前进行某些操作的机制,例如,在把一个请求请求的响应数据返回给用户之前,我们可以检查用户是否有权限,可以记录日志等等。
下面我们实现一个打印日志的中间件,每次有一个请求请求,我们就在控制台打印一条信息。//server.js …//获取路由器实例 var路由器=express.Router ();//路由中间件:每当有一个请求请求都会执行 路由器。使用(函数(下)要求,res, {//打印请求的方法和url console.log(点播。方法,req.url);//继续处理请求请求,寻找匹配的路由 next (); });//home页面路由(http://localhost: 8080) 路由器。(“/?函数(点播,res) { res.send(“我主页!”); });//关于页面路由(http://localhost: 8080/) 路由器。('/',函数(点播,res) { res.send(“我对页面!”); });//把定义好的路由集成到节点应用中 app.use (/app,路由器); …学习使用ExpressJS 4.0中的新路由器的用法