node.js-express模块化路由及请求参数

前言

项目开发中,不推荐将不同功能的路由都混在一起存放在一个文件中,因为随着路由的种类越来越多,管理起来会非常麻烦。为了方便路由的管理,通过express.Router()实现模块化路由管理。

二级路由的创建方法

1、导入express模块

const express = require('express');

2、创建路由对象

express.Router()方法用于创建路由对象route。

const router = express.Router();

3、注册二级路由

然后使用route.get()和route.post()来注册当前模块路由对象下的二级路由,这就是一个简单的模块化路由。

基本语法格式:

route.get('请求路径', '请求处理函数');   // 接收并处理route 下的GET 请求
route.post('请求路径', '请求处理函数'); // 接收并处理route 下的POST 请求
router.get('/index',(req,res)=>{
    res.send('欢迎来到首页');
})
router.post('/info',(req,res)=>{
    res.send('欢迎来到信息页');
})

4、导出路由模块

module.exports = router;

路由模块代码如下

const express = require('express');

const router = express.Router();

router.get('/index',(req,res)=>{
    res.send('欢迎来到首页');
})

router.post('/info',(req,res)=>{
    res.send('欢迎来到信息页');
})

module.exports = router;

5、注册模块化路由

route对象创建成功后,使用app.use()注册route模块化路由,示例代码如下。

基本语法格式:

app.use('请求路径', route);

服务器端代码如下

const express = require('express');
const router = require('./express路由');
const web = express();
web.use('/api',router);
web.listen(3000,()=>{
    console.log('服务器运行在3000端口');
})

express接收请求参数

使用原生Node.js处理GET和POST请求参数是非常麻烦的,例如,为了获取GET请求参数,需要使用url模块对请求地址进行解析。为了降低开发的难度,Express通过req.query、req.body和第三方模块body-parser对请求参数进行了处理。下面讲解Express如何接收请求参数。

Express接收GET请求参数

Express框架中的req.query用于获取GET请求参数,框架内部会将GET参数转换为对象并返回。

web.get('/', (req, res) => {
  res.send(req.query);
});

演示如何接收get请求参数

const express = require('express');
const web = express();
web.get('/query', (req, res) => { 
  res.send(req.query);
});
web.listen(3000,()=>{
    console.log('服务器启动成功');
});

在这里插入图片描述

Express接收POST请求参数

Express中的req.body用于获取POST请求参数,需要借助第三方body-parser模块将POST参数转换为对象形式。

web.post('/body', (req, res) => { 
  res.send(req.body);
});

body-parser是一个解析HTTP请求体的模块,使用这个模块可以处理POST请求参数,

app.use(bodyParser.urlencoded({ extended: false }));
{ extended: false}表示在方法的内部使用querystring系统模块来处理POST请求参数; 
{ extended: true}表示使用qs第三方模块进行处理。

安装body-parser模块
在处理POST请求参数之前,首先要完成body-parser模块的安装。

npm install body-parser@1.18.3 --save

演示如何接收post请求参数

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/body', (req, res) => { 
  res.send(req.body);
});
app.listen(3000,()=>{
    console.log('服务器启动成功');
});

在这里插入图片描述

Express接收路由参数

在定义路由时,可以在请求路径中传递参数,例如请求路径“/find/:id”中的“:id”是一个参数占位符,当浏览器向“/find/:id”地址发送请求时,“:id”对应的值就是参数值。把写在路由请求路径中的参数称为路由参数。

Express路由参数的示例代码如下。

app.get('/find/:id', (req, res) => {
  res.send(req.params);
});

演示如何接收路由参数

const express = require('express');
const web = express();
web.get('/find/:id', (req, res) => { 
  res.send(req.params);
}); 
web.listen(3000);
console.log('服务器启动成功');

在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面我将为您介绍如何使用 Node.jsExpress 框架搭建一个后台服务器,并实现路由模块化。 1. 安装 Node.js 首先需要在您的电脑上安装 Node.js。您可以在官网(https://nodejs.org/)下载并安装最新版的 Node.js。 2. 初始化项目 打开命令行工具,进入您想要创建项目的目录,执行以下命令: ``` npm init -y ``` 这个命令将会初始化一个新的 Node.js 项目,并在 package.json 文件中添加一些基本配置。 3. 安装 Express 框架 执行以下命令来安装 Express 框架: ``` npm install express ``` 4. 编写服务器代码 在项目根目录下,创建一个名为 `app.js` 的文件,并编写以下代码: ```javascript const express = require('express'); const app = express(); // 路由模块化 const userRouter = require('./routes/user'); app.use('/user', userRouter); app.listen(3000, () => { console.log('Server is running on port 3000!'); }); ``` 以上代码使用 `require` 引入了 Express 模块,并创建了一个 Express 应用程序实例。然后,我们通过 `app.use` 方法来加载路由模块。 5. 创建路由模块 在项目根目录下,创建一个名为 `routes` 的文件夹,在 `routes` 文件夹下创建一个名为 `user.js` 的文件,并编写以下代码: ```javascript const express = require('express'); const router = express.Router(); router.get('/', (req, res) => { res.send('Hello World!'); }); module.exports = router; ``` 以上代码创建了一个 Express 路由实例,并使用 `router.get` 方法来定义一个 GET 请求路由。在路由处理函数中,我们使用 `res.send` 方法来发送一个字符串作为响应。 6. 运行服务器 在命令行工具中执行以下命令来启动服务器: ``` node app.js ``` 此时您可以在浏览器中访问 `http://localhost:3000/user` 来查看响应结果。 至此,您已经成功搭建了一个后台服务器,并实现了路由模块化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力做一只合格的前端攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值