KOA2项目简单搭建

KOA2

手动搭建 koa2 项目

  1. npm init -y 创建 package.json 文件
  2. git init git 初始化
  3. 创建 .gitignore 文件,并将不需要 git 上传的文件放上面,例如 node_modules文件夹
  4. 安装 koa 框架 npm i koa
  5. 创建 src 目录,以及 app.js 入口文件
  6. 编写一个最简单的服务器
const Koa = require('koa');
// 实例化koa
const app = new Koa();

// app.use()注册中间件
app.use((ctx, next) => {
    // ctx 是http的上下文,next 放行
    // ctx.body是返回给前端的内容
    ctx.body = {};
});

app.listen(3000, () => {
    console.log('端口3000启动了');
});

自动重启配置文件

dotenv 的作用,读取根目录中的 .env 文件,将配置放在 process.env

  1. 安装 dotenv npm i dotenv
  2. 在根目录下创建文件 .env,编写一些环境配置的常量
APP_PORT=8000
  1. /src/config 文件夹中创建 config.default.js 文件
const dotenv = require('dotenv');
dotenv.config();
module.exports = process.env;

添加路由

  1. 安装路由npm i koa-router,并导包
  2. 实例化路由对象
const Router = require('koa-router');

const { API_PREFIX } = require('../config/config.default');
// 路由前缀
const router = new Router({ prefix: API_PREFIX });
  1. 编写路由
const Router = require('koa-router');

const { API_PREFIX } = require('../config/config.default');

const User = require('../controller/userController');

const router = new Router({ prefix: API_PREFIX });

router.post('/user/register', User.register);

module.exports = router;
  1. 注册中间件
const Routes = require('../router');

app.use(Routes.routes());
  1. 编写控制器

路由: 解析 url,分发给控制器对应的方法;
控制器: 处理不同的业务

解析 POST 请求参数

  1. 安装第三方插件 npm i koa-body
  2. 引入第三方插件 const { koaBody } = require('koa-body');
  3. 注册第三方插件 app.use(koaBody());
  4. 使用解析
// 在控制器中的第一个参数ctx中会有 ctx.request.body 字段就是post请求参数
async register(ctx, next) {
    console.log(ctx.request.body);
    ctx.body = ctx.request.body;
}

控制器中的操作步骤

  1. 获取前端传递的数据
  2. 操作数据库的到数据库中的数据(service 层)
  3. 返回结果给前端

拆分 service 层

service 层用于操作数据库

// 操作数据库(增删改查)
class UserService {
    async createUser({ username, password }) {
        // 数据库的操作
        return { username: username + '1', password };
    }
}

// 导出一个新对象
module.exports = new UserService();

数据库操作 —— sequelize 工具

sequelize 是一个 ORM 数据库工具。
ORM 是对象关系映射,将数据表当做对象处理

  • 数据表映射(对应)一个类
  • 数据表中的数据行(记录)对应一个对象
  • 数据表的字段对应对象的属性
  • 数据表的操作对应对象的方法

使用:

  1. 安装第三方插件 npm i sequelize ,同时还要安装驱动程序
// 不同数据库对应不同驱动
npm i pg pg-hstore # PostgreSQL
npm i mysql2 # MySQL
npm i mariadb # MariaDB
npm i sqlite3 # SQLite
npm i tedious # Microsoft SQL Server
npm i ibm_db # DB2
  1. 连接数据库
const { Sequelize, Model } = require('sequelize');

// 实例化 Sequelize
const seq = new Sequelize('数据库名称', '用户名', '密码', {
    host: '主机地址',
    dialect: 'mysql', // 数据库类型
});

// 测试数据库连接是否成功
try {
    const res = seq.authenticate();
    console.log(res);
} catch (err) {
    console.log(err);
}

module.exports = seq;
  1. 在配置文件 .env 中配置数据库信息
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PWD=123456
MYSQP_DB=sjkmz
  1. /src/db/seq.js 文件中将配置信息修改
const { Sequelize, Model } = require('sequelize');
const { MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PWD, MYSQP_DB } = require('../config/config.default');
// 实例化 Sequelize
const seq = new Sequelize(MYSQP_DB, MYSQL_USER, MYSQL_PWD, {
    host: MYSQL_HOST,
    port: MYSQL_PORT,
    dialect: 'mysql', // 数据库类型
});

// 测试数据库连接是否成功
try {
    const res = seq.authenticate();
    console.log(res);
} catch (err) {
    console.log(err);
}

module.exports = seq;

创建实体(数据模型)

使用步骤:

  1. 创建 model 文件夹存储项目所有的数据模型
  2. 定义数据模型
// 数据模型(实体)
const { DataTypes } = require('sequelize');
const seq = require('../db/seq');
const User = seq.define(
    '模型名称',
    {
        // 会自动创建id
        // 字段定义
        /* 
         字段名: {
            type:DataTypes.STRING,//定义数类型
            allowNull: false,// 不能为空
            unique: true,// 唯一的
            comment: '用户名,唯一',// 注释
            defaultValue: '131',// 默认值
         }
        */
        user_name: {
            type: DataTypes.STRING,
            allowNull: false,
            unique: true,
            comment: '用户名,唯一',
        },
    },
    {
        // options的配置
        timestamps: false, // 不会向每个模型添加 createdAt 和 updatedAt 字段
    }
);
// User.sync()  如果表不存在,则创建该表(如果已经存在,则不执行任何操作)
// User.sync({ alter: true }) 这将检查数据库中表的当前状态(它具有哪些列,它们的数据类型等),然后在表中进行必要的更改以使其与模型匹配.
// 将创建表,如果表已经存在,则将其首先删除
User.sync({ force: true });

module.exports = User;

数据库增删改查 CRUD

// 增
数据表名.create({
    表中的字段,
});
// 删
数据表名.destroy({});
// 改
数据表名.update({}, {});
// 查
数据表名.findAll(); // 查找数据表中的所有数据的所有字段
数据表名.findAll({
    attributes: [字段名], // 查找数据表中的所有数据的指定字段
    where: {}, // 增加查询条件
});
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是手把手带你搭建koa2 mysql项目的教程。 1. 安装Node.js和npm 首先需要安装Node.js和npm,可以在官网下载安装包进行安装。 2. 初始化项目 在命令行中进入项目目录,运行以下命令初始化项目: ``` npm init ``` 根据提示填写项目信息,完成后会生成package.json文件。 3. 安装koa2和koa-router 运行以下命令安装koa2和koa-router: ``` npm install koa koa-router --save ``` 4. 安装mysql模块 运行以下命令安装mysql模块: ``` npm install mysql --save ``` 5. 创建数据库 在mysql中创建一个名为test的数据库,并创建一个名为users的表,包含id、name、age三个字段。 6. 创建连接池 在项目中创建一个db.js文件,用于创建mysql连接池: ```javascript const mysql = require('mysql'); const pool = mysql.createPool({ host: 'localhost', user: 'root', password: '123456', database: 'test' }); module.exports = pool; ``` 7. 创建路由 在项目中创建一个router.js文件,用于创建koa-router路由: ```javascript const Router = require('koa-router'); const pool = require('./db'); const router = new Router(); router.get('/users', async (ctx) => { const conn = await pool.getConnection(); const [rows] = await conn.query('SELECT * FROM users'); conn.release(); ctx.body = rows; }); module.exports = router; ``` 8. 创建服务器 在项目中创建一个app.js文件,用于创建koa2服务器并引入路由: ```javascript const Koa = require('koa'); const router = require('./router'); const app = new Koa(); app.use(router.routes()); app.listen(3000, () => { console.log('Server is running at http://localhost:3000'); }); ``` 9. 运行项目 在命令行中进入项目目录,运行以下命令启动服务器: ``` node app.js ``` 在浏览器中访问http://localhost:3000/users,可以看到数据库中的用户数据。 至此,一个简单koa2 mysql项目搭建完成了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hoki802

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值