`
hm4123660
  • 浏览: 283527 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Dea4ce76-f328-3ab2-b24a-fb268e1eeb75
数据结构
浏览量:70316
社区版块
存档分类
最新评论

Nodejs的express路由规则

阅读更多

            我们知道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('/');//否则,页面重定位,不执行下面路由
  }
} 
1
1
分享到:
评论

相关推荐

    NodeJS+express如何新建一个自己需要的项目

    路由是Express应用的核心,它们定义了HTTP请求与处理函数之间的映射。例如,要创建一个处理GET请求的路由,可以这样写: ```javascript app.get('/', (req, res) => { res.send('Hello World!'); }); ``` ...

    nodejs之express框架源码

    - 路由在Express中用于定义HTTP方法(GET、POST等)和URL路径的对应关系。 - 使用app.get()、app.post()等方法定义路由,可以配合中间件实现复杂的功能。 4. **视图系统** - Express支持多种模板引擎,如Jade...

    nodeJs+express+socket.io的即时通信web

    在这个“nodeJs+express+socket.io的即时通信web”项目中,开发者创建了一个简单的聊天室应用,实现了以下几个关键功能: 1. **在线统计**:利用Socket.IO的连接状态管理,可以实时追踪并更新当前在线用户数量。...

    nodejs express模块

    通过理解并熟练运用 Express 的核心概念,如路由、中间件、视图和响应,开发者可以快速构建出功能丰富的 web 应用。同时,Express 的灵活性也鼓励开发者根据项目需求自由选择合适的第三方库,实现更加定制化的解决...

    nodejs+express实现增删改查

    5. **Express路由与控制器**:在Express中,我们将CRUD操作封装到控制器函数中,并通过路由调用这些函数。例如,创建一个`usersController.js`文件,然后在`app.js`中设置路由。 6. **错误处理**:在Express应用中...

    NodeJS入门项目案例(Express+Mysql)

    NodeJS入门项目案例(Express+Mysql)是一个适合初学者的教程,旨在引导你进入Node.js服务端开发的世界。在这个项目中,我们将使用Express框架,一个简洁且强大的Web应用开发框架,以及Mysql,一个流行的开源关系型...

    JavaScript_解析服务器为Nodejs Express.zip

    在"JavaScript_解析服务器为Nodejs Express.zip"这个压缩包中,重点是讲解如何利用Node.js的Express框架来搭建一个功能强大的后端服务器。 Express是Node.js中最受欢迎的Web应用框架,它简化了HTTP服务器的创建,...

    nodejs express connect 包

    2. **创建应用**:初始化一个Express应用,定义路由和中间件。 ```javascript const express = require('express'); const app = express(); // 中间件示例,处理所有GET请求 app.use((req, res, next) => { ...

    vue+nodejs+express+mybatis

    Vue.js、Node.js、Express和MyBatis是四个在Web开发中广泛应用的技术栈。这个项目案例结合了前端的Vue.js框架、后端的Node.js与Express框架,以及数据库操作的MyBatis持久层框架,构建了一个完整的Web应用程序。下面...

    Nodejs Express 用户登录注册示例

    Express支持中间件系统,使得路由控制、请求处理和响应发送变得更加灵活。 3. **MySQL数据库**:MySQL是一个开源的关系型数据库管理系统,广泛用于Web应用程序。在这个示例中,MySQL用于存储用户注册时输入的用户名...

    nodejs通过express实现邮件发送

    这段代码定义了一个简单的Express应用,监听POST请求到'/send-email'的路由。当收到请求时,它会使用`nodemailer`的`transporter`对象发送邮件。请确保替换`transporter`配置中的账号和密码为你自己的邮箱信息。 ...

    Nodejs开发指南博客实例(支持Express3.0)

    Express是一个基于Node.js的轻量级Web应用框架,它简化了路由、中间件和模板引擎的使用。Express3.0的主要变更包括: 1. **中间件系统重构**:Express3.0移除了`app.controller`,并统一使用`app.use`和`app.get/...

    NodeJS+Express+MongoDB简单博客系统

    **NodeJS + Express + MongoDB 简单博客系统** 这个项目是一个基于Node.js、Express.js框架和MongoDB数据库构建的简单博客系统。它为初学者提供了一个很好的平台,以了解和实践Web开发中的服务器端编程、路由处理...

    nodejs+Express+mssql

    - `app.js`或`index.js`:主要的Express应用文件,定义了服务器设置、路由和中间件。 - `models`目录:可能包含数据库模型,定义了与SQL Server交互的实体和方法。 - `routes`目录:包含了不同路由的处理逻辑,比如...

    nodeJS中express框架和mysql简单的连接demo

    这个“nodeJS中express框架和mysql简单的连接demo”项目,旨在演示如何将两者结合,实现在Web应用中与数据库进行交互,包括向数据库插入数据和查询数据。 首先,你需要确保已经安装了以下Node.js相关的依赖库: 1. ...

    uniApp+vue+nodejs+express+mysql电商项目.zip

    【标题】"uniApp+vue+nodejs+express+mysql电商项目"是一个综合性的Web开发实践,涵盖了前端、后端以及数据库等多个技术栈。在这个项目中,开发者将使用uniApp作为移动端应用框架,Vue.js作为前端框架,Node.js搭配...

    08Nodejs 路由封装 封装仿照express的路由3

    本篇将介绍如何模块化地封装Node.js路由,并仿照Express的路由方式进行封装。 1、模块化的方式封装 模块化是Node.js设计的重要特性,它使得代码可重用性和可维护性大大提升。在封装路由时,我们可以创建一个单独的...

    nodejs+vue+express+mysql

    1. **路由配置**:在Express中设置HTTP方法和URL映射,处理不同请求。 2. **中间件**:使用Express中间件处理请求、响应,如session管理、错误处理等。 3. **模板引擎**:可能结合Pug或EJS等模板引擎来渲染动态HTML...

    nodejs_express_module

    在开发过程中,Express 还支持路由定义,允许你为不同的 URL 路径设置不同的处理函数。同时,Express 支持模板引擎,如 EJS 或 Pug,可以方便地生成 HTML 响应。此外,Express 还提供了错误处理机制,使得开发过程...

    node.js express框架

    1. Express基础:Express是一个基于Node.js平台的极简、灵活的Web应用框架,为开发者提供了构建Web应用的常用功能,如路由处理、中间件系统等。其设计思想深受Ruby on Rails的影响,使得Node.js的开发更加简洁和结构...

Global site tag (gtag.js) - Google Analytics