创建服务器之前首先要搭建好地址路径 然后下载好一些相应的第三方模块 express()
注:文件引用的上一篇的方法和其他模块 大致如图所示
接下来为接口的创建于使用具体步骤 如下图所示:
// 获取前面的方法 用来进行增删改查
// 这里需要写入接口 这里使用第三方模块express创建接口
// 写处理图书的接口
const express = require('express')
// 引入index.js这个文件
let { query, del, add, update } = require('./index.js')
// 调用方法创建一个新服务器
const app = express()
// const cors = require('cors'); // 处理跨域问题的 这里用不到
// app.use(cors());
app.use(express.json()) // 解析json格式的请求体 把请求体赋值给req.body
app.use(express.urlencoded({ extend: true })) // 解析查询字符串格式的请求体 把请求体赋值给req.body
///写接口
//1.获取所有图书的接口
app.get('/api/getbooks', async (req, res) => {
// 实际开发图书数据肯定是存放在数据库中的 那我们现在就要去数据库中读取出所有的图书数据
// 但是我们现在还没有雪数据库来的 那现在所有的图书数据在db.json文件中
// 所以现在就要去读取db.json文件来读取所有的内容
// 使用我们自己写的index.js文件中的query方法来读
let arr = await query() // 调用query方法得到一个promise对象 拿到他的的结果要用await修饰
res.send({ status: 200, msg: '获取成功', data: arr }) // 数据放入我们拿到的promise对象
})
// 2.增加图书
app.post('/api/addbook', async (req, res) => {
console.log(req.body) // 打印出请求体参数
let result = await add(req.body) // add()方法放入请求体参数 也就是一个对象
// 因为req.body 获得的就是前端发送给后端的已经被转换后的对象
// 而且里面的格式和我们方法里面传参的格式一样 因此直接拿来调用即可
// 不然得手写 一个很长的对象放进去 很麻烦
if (result == undefined) {
res.send({ status: 200, msg: '添加成功' })
} else {
res.send({ status: 500, msg: '添加失败' })
}
})
// 3.修改图书
app.post('/api/updatebook', async (req, res) => {
console.log(req.body) // 打印出请求体参数
req.body.id = parseInt(req.body.id) // 转换获得的请求体里面的id 不然就是字符串形式
let result = await update(req.body) // add()方法放入请求体
if (result == undefined) {
res.send({ status: 201, msg: '修改成功' })
} else {
res.send({ status: 500, msg: '修改失败' })
}
})
// 4.删除图书
app.delete('/api/delbook', async (req, res) => {
// 这里使用的删除方法 删除也是使用请求get方式 将这个参数从前端发送给后端
// 如果直接接受 req.query 的话 得到的是 { id: 5 } 对象
// 而我们这里要删除的是一个编号值 因此需要把里面的id值拿出来
// 因此使用 req.query.id del() 里面之所以使用req.query.id 这样直接调用更方便
console.log(req.query.id) // 打印出查询参数
let result = await del(req.query.id) // add()方法放入请求查询字符串中的 id参数
if (result == undefined) {
res.send({ status: 201, msg: '删除成功' })
} else {
res.send({ status: 500, msg: '删除失败' })
}
})
打开接口 使用 Postman 软件进行发送响应请求验证
-
添加图书请求成功图示
-
修改图书请求成功图示
-
删除图书成功图示