node js 如何使用第三方模块express()创建一个服务器 (部分文件接续上篇json文件增删改查)

228 阅读3分钟

创建服务器之前首先要搭建好地址路径 然后下载好一些相应的第三方模块 express()

注:文件引用的上一篇的方法和其他模块 大致如图所示

snipaste20220305_171340.jpg

接下来为接口的创建于使用具体步骤 如下图所示:

// 获取前面的方法 用来进行增删改查


// 这里需要写入接口 这里使用第三方模块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 软件进行发送响应请求验证

  • 添加图书请求成功图示 snipaste20220305_164054.jpg

  • 修改图书请求成功图示 snipaste20220305_164451.jpg

  • 删除图书成功图示 snipaste20220305_170907.jpg