1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 学会nodejs中express框架进行get和post请求 如何获取和增加用户数据?(express的安装

学会nodejs中express框架进行get和post请求 如何获取和增加用户数据?(express的安装

时间:2022-08-10 14:10:32

相关推荐

学会nodejs中express框架进行get和post请求 如何获取和增加用户数据?(express的安装

文章目录

前言Express框架express的安装 案例举例GET请求获取用户数据POST请求添加用户数据写在最后

前言

本篇文章主要介绍node.js中如何使用express框架进行get和post的请求。本文案例中将数据存放在本地文件中,使用get和post请求对文件进行读取和添加数据,模拟实际开发中的情形。

如果不太了解node基础的,可以先去看我的另一篇文章 node.js新手入门—教你写属于自己的接口get和post请求基础详解

Express框架

express框架是基于node.js的web应用框架,可快速搭建一个完整功能的网站,丰富的HTTP工具以及来自Connect框架的中间件随取随用。我上一篇文章采用原生node举例了get和post请求,大家可以去看看node.js中HTTP不同请求方法的处理

可以和 Express框架写法进行对比,你就知道有多方便了~

express的安装

此方法是在文件夹中安装express,不会生成express模板,需要自己去写express相关的文件

npm install express

生成express项目模板(一般用这种)

npx express-generator

案例举例

我这里使用第一种方法安装了express,下面就用案例实现express中使用get和post请求,先来看项目目录:

app.js 是项目启动文件,存放案例的主要逻辑

db.js 是文件方法抽离的文件,存放文件读取数据和添加数据的两个方法

db.json 是本地的json文件,存放模拟的json格式的用户数据

GET请求获取用户数据

用户数据保存在db.json 当中,通过get获取到用户数据的流程如下:

通过express框架中提供的app.get方法接收get请求通过 readFile方法读取db.json 文件中的数据数据经过处理后通过res.send方法进行响应

在db.js文件中,我们对读取文件的方法进行封装:

这里引入了promisify 方法,把fs.readFile进行promis化,这样在下面就能使用async await进行异步。使用JSON.parse对读取的数据进行解析为 JavaScript 对象

const fs = require('fs')const {promisify } = require('util')const readFile = promisify(fs.readFile)exports.getDb = async()=>{let data = await readFile('./db.json','utf8')return JSON.parse(data)}

然后我们可以在app.js中进行使用上述封装的读取文件的方法:

使用app.get方法接收get请求,然后使用try … catch捕捉方法中的异常使用刚刚写的读取文件的方法,通过res.send方法返回数据rres.status(500).json({ error })函数设置响应的HTTP状态码,如果没有读取到文件便返回error信息

const express = require('express')const db = require('./db')const app = express()app.get('/', async function (req, res) {try {let back = await db.getDb()res.send(back.users)} catch (error) {res.status(500).json({error })}})app.listen(3000, () => {console.log('Run http://127.0.0.1:3000');})

然后我们来看看效果,运行文件用浏览器访问地址,浏览器默认就是get请求:

可以看到用户的数据以及可以成功返回啦:

POST请求添加用户数据

添加用户数据到db.json,通过POST添加用户数据的流程如下:

使用app.post方法接收post请求通过req.body判断post请求中请求体的数据,如果为空则使用res.status(403).json设置响应状态码及响应数据读取到文件的内容,判断文件中用户的个数,给新的用户生成递增的新id将请求体中的数据使用添加文件的方法 写入db.json中

刚刚我们写了读取文件的封装,下面继续封装数据写入文件的方法:

使用JSON.stringify将传过来的data转换为字符串,然后通过writeFile方法写入字符串

exports.serveDb = async(data)=>{let stringData = JSON.stringify(data)return await writeFile('./db.json',stringData)}

然后我们可以在app.js中处理POST请求:

5. 从express中引入json,因为post请求中请求体的数据是json格式,通过app.use(express.json())进行解析

6. 通过req.body获取post请求中请求体的内容,如果没有拿到内容就设置响应状态反应错误信息

7. 使用db.getDb方法读取文件内容,拿到最后一个用户的id,id+1为新用户的id。将接收的数据通过db.serveDb方法写入到文件中

8. 最后对写入文件的返回数据进行处理,设置响应状态。

const {json } = require('express')const express = require('express')const db = require('./db')const app = express()app.use(express.json())app.get('/', async function (req, res) {// get部分见上面}) app.post('/', async (req, res) => {let body = req.bodyif (!body) {res.status(403).json({error: '缺少用户信息'})}let jsonObj = await db.getDb()body.id = jsonObj.users[jsonObj.users.length-1].id+1jsonObj.users.push(body)try {let w = await db.serveDb(jsonObj)if(!w){res.status(200).send({msg:'添加成功'})}} catch (error) {res.status(500).json({error})}})app.listen(3000, () => {console.log('Run http://127.0.0.1:3000');})

写完之后我们来测试接口,这里需要用到postman接口测试工具

这样就能模拟发送post请求,并且我们看到有返回的结果“添加成功”

这个时候来看看db.json文件:

可以看到我们刚刚发送请求的数据已经成功的写入了

写在最后

本文主要介绍了express框架中进行get和post请求的处理,在实际开发中无非就联动数据库进行增查删改,以及实现其它的业务逻辑。新学的朋友可以自己动手去尝试一下,亲身感受一下express框架对不同请求的处理,这样能帮助自己更好的去理解逻辑和流程。

有问题欢迎在评论区留言~~~~~

学会nodejs中express框架进行get和post请求 如何获取和增加用户数据?(express的安装以及实战案例讲解)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。