我们知道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('/');//否则,页面重定位,不执行下面路由
}
}
相关推荐
路由是Express应用的核心,它们定义了HTTP请求与处理函数之间的映射。例如,要创建一个处理GET请求的路由,可以这样写: ```javascript app.get('/', (req, res) => { res.send('Hello World!'); }); ``` ...
- 路由在Express中用于定义HTTP方法(GET、POST等)和URL路径的对应关系。 - 使用app.get()、app.post()等方法定义路由,可以配合中间件实现复杂的功能。 4. **视图系统** - Express支持多种模板引擎,如Jade...
在这个“nodeJs+express+socket.io的即时通信web”项目中,开发者创建了一个简单的聊天室应用,实现了以下几个关键功能: 1. **在线统计**:利用Socket.IO的连接状态管理,可以实时追踪并更新当前在线用户数量。...
通过理解并熟练运用 Express 的核心概念,如路由、中间件、视图和响应,开发者可以快速构建出功能丰富的 web 应用。同时,Express 的灵活性也鼓励开发者根据项目需求自由选择合适的第三方库,实现更加定制化的解决...
5. **Express路由与控制器**:在Express中,我们将CRUD操作封装到控制器函数中,并通过路由调用这些函数。例如,创建一个`usersController.js`文件,然后在`app.js`中设置路由。 6. **错误处理**:在Express应用中...
NodeJS入门项目案例(Express+Mysql)是一个适合初学者的教程,旨在引导你进入Node.js服务端开发的世界。在这个项目中,我们将使用Express框架,一个简洁且强大的Web应用开发框架,以及Mysql,一个流行的开源关系型...
在"JavaScript_解析服务器为Nodejs Express.zip"这个压缩包中,重点是讲解如何利用Node.js的Express框架来搭建一个功能强大的后端服务器。 Express是Node.js中最受欢迎的Web应用框架,它简化了HTTP服务器的创建,...
2. **创建应用**:初始化一个Express应用,定义路由和中间件。 ```javascript const express = require('express'); const app = express(); // 中间件示例,处理所有GET请求 app.use((req, res, next) => { ...
Vue.js、Node.js、Express和MyBatis是四个在Web开发中广泛应用的技术栈。这个项目案例结合了前端的Vue.js框架、后端的Node.js与Express框架,以及数据库操作的MyBatis持久层框架,构建了一个完整的Web应用程序。下面...
Express支持中间件系统,使得路由控制、请求处理和响应发送变得更加灵活。 3. **MySQL数据库**:MySQL是一个开源的关系型数据库管理系统,广泛用于Web应用程序。在这个示例中,MySQL用于存储用户注册时输入的用户名...
这段代码定义了一个简单的Express应用,监听POST请求到'/send-email'的路由。当收到请求时,它会使用`nodemailer`的`transporter`对象发送邮件。请确保替换`transporter`配置中的账号和密码为你自己的邮箱信息。 ...
Express是一个基于Node.js的轻量级Web应用框架,它简化了路由、中间件和模板引擎的使用。Express3.0的主要变更包括: 1. **中间件系统重构**:Express3.0移除了`app.controller`,并统一使用`app.use`和`app.get/...
**NodeJS + Express + MongoDB 简单博客系统** 这个项目是一个基于Node.js、Express.js框架和MongoDB数据库构建的简单博客系统。它为初学者提供了一个很好的平台,以了解和实践Web开发中的服务器端编程、路由处理...
- `app.js`或`index.js`:主要的Express应用文件,定义了服务器设置、路由和中间件。 - `models`目录:可能包含数据库模型,定义了与SQL Server交互的实体和方法。 - `routes`目录:包含了不同路由的处理逻辑,比如...
这个“nodeJS中express框架和mysql简单的连接demo”项目,旨在演示如何将两者结合,实现在Web应用中与数据库进行交互,包括向数据库插入数据和查询数据。 首先,你需要确保已经安装了以下Node.js相关的依赖库: 1. ...
本篇将介绍如何模块化地封装Node.js路由,并仿照Express的路由方式进行封装。 1、模块化的方式封装 模块化是Node.js设计的重要特性,它使得代码可重用性和可维护性大大提升。在封装路由时,我们可以创建一个单独的...
1. **路由配置**:在Express中设置HTTP方法和URL映射,处理不同请求。 2. **中间件**:使用Express中间件处理请求、响应,如session管理、错误处理等。 3. **模板引擎**:可能结合Pug或EJS等模板引擎来渲染动态HTML...
在开发过程中,Express 还支持路由定义,允许你为不同的 URL 路径设置不同的处理函数。同时,Express 支持模板引擎,如 EJS 或 Pug,可以方便地生成 HTML 响应。此外,Express 还提供了错误处理机制,使得开发过程...
1. Express基础:Express是一个基于Node.js平台的极简、灵活的Web应用框架,为开发者提供了构建Web应用的常用功能,如路由处理、中间件系统等。其设计思想深受Ruby on Rails的影响,使得Node.js的开发更加简洁和结构...
接着,你可以分析并理解项目结构,了解Express路由的配置、数据库模型的设计以及EJS模板的使用方法。同时,你还可以研究如何结合jQuery和Bootstrap来优化前端用户体验。最后,通过运行项目,你可以看到一个完整的...