ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

API接口案例

2022-05-30 10:34:48  阅读:195  来源: 互联网

标签:getAllUser express db 接口 案例 API user router import


案列需求

基于MYSQL数据库+Express对外提供用户列表的API接口服务。用到的技术点如下:

  • 第三方的包express和mysql2
  • ES6模块化
  • Promise
  • async/await

主要的实现步骤

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

搭建项目的基本结构

  1. 启用ES6模块化的支持

            在package.json中声明“type”:“moudle”

         2. ’安装第三方依赖包

              运行 npm i express mysql

 

     

 

 

 创建基本的服务器

// 使用ES6的默认导入语法
import express from "express";
const app = express();
app.listen(80,()=> {
    console.log(`服务器已启动在http://127.0.0.1`);
})

  

  

 

 

 

创建db数据库操作模块

import mysql from 'mysql'

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

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

  

 

 

创建user_ctrl业务模块

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

// 获取所有的用户的列表数据
// 使用ES6的按需导出的语法,将getAllUser方法导出
export async function getAllUser(req, res) {
    // db.query() 函数的返回值是Promise的实例对象,因此可以使用async/await进行简化
    const [rows] = await db.query('select id, username,nickname from ev_users');
    console.log(rows);
    res.send({ // 将获取到的数据返回给客户端
        status:0,
        message: '获取用户列表数据成功',
        data: rows 
    })
}

创建user_router业务模块 

import express from "express";
// 按需导入getAllUser函数
import { getAllUser } from "../user_ctrl";
// 创建路由对象
const router = new express.Router()
// 挂载路由规则
router.get('/user', getAllUser);
// 使用ES6的默认导出语法,将路由对象共享出去
export default router

  

挂载并使用路由模块

import express from "express";
// 按需导入getAllUser函数
import { getAllUser } from "../user_ctrl";
// 创建路由对象
const router = new express.Router()
// 挂载路由规则
router.get('/user', getAllUser);
// 使用ES6的默认导出语法,将路由对象共享出去
export default router

  

 

使用try...catch捕获异常

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

// 获取所有的用户的列表数据
// 使用ES6的按需导出的语法,将getAllUser方法导出
export async function getAllUser(req, res) {
    //使用try...catch 捕获Promise异步任务中产生的异常错误,并在catch块中进行处理
    try {
        // db.query() 函数的返回值是Promise的实例对象,因此可以使用async/await进行简化
        const [rows] = await db.query('select id, username,nickname,xxx from ev_users');
        res.send({ // 将获取到的数据返回给客户端
            status: 0,
            message: '获取用户列表数据成功',
            data: rows
        })

    } catch(e) {
        res.send({ // 将获取到的数据返回给客户端
            status: 1,
            message: '获取用户列表数据失败',
            msg: e.message
        })
    }
    
}

  

 

标签:getAllUser,express,db,接口,案例,API,user,router,import
来源: https://www.cnblogs.com/jiguiyan/p/16325886.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有