B站杰哥node+koa+mysql项目实战学习笔记

这篇学习笔记详细记录了使用Node.js的Koa框架结合MySQL进行用户注册、父子关系表的联合查询及文件上传的实践过程。涉及到的工具有npm、sequelize、nodemon等,项目结构清晰,包括http服务配置、数据库连接、接口实现等关键步骤。通过sequelize创建表,实现了用户注册接口,并展示了联表查询和文件上传的功能。
摘要由CSDN通过智能技术生成

 因为是学习笔记,所以写的东西可能比较散,但我会尽量把功能完整的串起来,后期可能会修改很多次。本篇学习笔记主要记录用户注册的完整过程、有父子关系的表的联合查询、文件上传,所有的示例写的比较简单,大家见谅~~~

包准备:

  • npm i koa 

  • npm i nodemon //自动重启工具
  • npm i dotenv  //系统配置工具
  • npm i koa-router
  •  npm i koa-body
  • npm i sequelize --save //基于 promise 的 Node.js ORM  数据库工具  支持最低版本5.7
  • npm i mysql2 --save  //

项目解构解释:

app--http服务配置、config--系统配置、constant--常量配置、controller--业务逻辑实现层、db--数据库配置、middleware--抽离各种复用中间件、model--数据表实例层进行建表操作、router--路由层控制接口跳转、service--数据库服务层进行数据库相关操作、fileSave--保存上传的文件

 

1.http服务拆分:src/app/index.js

const Koa = require("koa");
const app = new Koa();
// 路由添加步骤:导入包 实例化对象 编写路由 注册中间件
const userRouter = require("../router/user.route");
const KoaBody = require('koa-body')
app.use(KoaBody()) //注意:要在路由注册之前注册,不要漏了小括号
app.use(userRouter.routes());

// 进行统一的错误处理
const errorHandler = require('./errorHandler')
app.on('error', errorHandler)
module.exports = app

 项目主体配置及env配置

//main.js
const { APP_PORT } = require("./config/config.default");
const app = require('./app')

app.listen(APP_PORT, () => {
    console.log("node服务已在3000端口启动");
});


//.env
APP_PORT=8006

MYSQL_HOST = localhost
MYSQL_PORT = 3306
MYSQL_USER = root
MYSQL_PWD = 123456
MYSQL_DB = nodeTest

//src/config/config.default.js
const dotenv = require('dotenv')
dotenv.config()

//progress:正在执行的node进程   env:环境变量
module.exports = process.env

数据库连接:

//拆分数据库连接方法: src/db/sequelize.js
const { Sequelize } = require("sequelize");

const {
    MYSQL_HOST,
    MYSQL_PORT,
    MYSQL_USER,
    MYSQL_PWD,
    MYSQL_DB,
} = require("../config/config.default");

const seq = new Sequelize(MYSQL_DB, MYSQL_USER, MYSQL_PWD, {
    host: MYSQL_HOST,
    dialect: "mysql",
});

// 测试数据库连接
// seq
//     .authenticate()
//     .then(() => {
//         console.log("数据库链接成功");
//     })
//     .catch((err) => {
//         console.log("数据库链接失败", err);
//     });
module.exports = seq;

2.接口实现:

以用户注册为例,接口实现、代码拆分、封装逻辑如下图所示:

 1.koa-router监听路由并匹配到相关接口,对携带参数进行处理


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值