API接口案例

本文介绍了如何使用Express框架和MySQL数据库来构建一个对外提供用户列表的API接口服务。主要步骤包括设置ES6模块化、安装依赖、创建服务器、数据库操作模块、业务控制层和路由模块。在数据库模块中,使用了Promise封装的数据库连接池,而在业务模块中,运用了async/await处理异步查询。
摘要由CSDN通过智能技术生成

1.案例需求

基于MySQL数据库+ Express对外提供用户列表的API接口服务。用到的技术点如下:
第三方包express和mysql2
ES6模块化
promise
async/await

2.主要的实现步骤

搭建项目的基本结构
创建基本的服务器
创建db数据库操作模块
创建user_ctrl 业务模块
创建user_router路由模块

3.搭建项目的基本结构

启用ES6模块化支持
在package.json中声明**“type” : “module”**
安装第三方依赖包
运行npm install express@4.17.1 mysql2@2.2.5

4.创建基本的服务器

import express from 'express'

const app = express()


app.listen(8088, () => {
  console.log('server running at  http://localhost:8088')
})

这里由于我的80端口被占用了,所以我才用的是8088,你们可以采用80,地址就可以是http://127.0.0.1

5.创建db数据库操作模块

import mysql from 'mysql2'

const pool = mysql.createPool({
  host: '127.0.0.1',
  port: 3306,
  database: 'crm', //请填写要操作的数据库名称
  user: 'root', //请填写登录数据库的用户名
  password: '123456' //请填写登录数据库的密码
})

//默认导出一个支持Promise API 的 pool
export default pool.promise()

6.创建user_ctrl模块

import db from '../db/index.js'

//使用 ES6 的按需导出语法,将 getAllUser 方法导出出去
//获取所有用户的列表数据
export async function getAllUser(req, res) {
  // const [rows] = await db.query('select id, user_name, true_name from t_user')
  // console.log(rows);
  try {
    const [rows] = await db.query('select id, user_name, true_name from t_user')
    res.send({
      //发送给客户端
      status: 0, //0表示成功
      message: '获取用户列表数据成功!',
      data: rows
    })
  } catch (err) {
    res.send({
      status: 1, //1表示失败
      message: '获取用户列表数据失败!',
      desc: err.message
    })
  }
}

// getAllUser()

7.创建user_router模块

import express from 'express'
// 从 user_ctrl.js模块中按需导入 getAl1User函数
import { getAllUser } from '../controller/user_ctrl.js'

//创建路由对象
const router = new express.Router()
//挂载路由规则
router.get('/user', getAllUser)

//使用 ES6 的默认导出语法,将路由对象共享出去
export default router

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值