基于koa2框架 + sequelize项目搭建

1.安装nodejs

2.安装koa

npm install koa --save

3.安装koa2项目生成器

npm install koa-generator -g

4.生成项目

koa2 <项目名称>

5.下载node-Modules

npm install

6.此时项目已经生成,并可以运行,还需要sequelize

npm start

7.安装sequelize

npm install sequelize --save

8.安装mysql mysql2

npm install mysql mysql2 --save

依赖已经下载完毕,可以进行文件的配置

9生成文件

在这里插入图片描述

10.数据库连接

在config文件下新建db.js

const Sequelize = require('sequelize');
const sequelize = new Sequelize('data-base', 'root', 'root', {
    host: 'localhost',
    dialect: 'mysql',
    operatorsAliases: false,
    dialectOptions: {
        //字符集
        charset: 'utf8mb4',
        collate: 'utf8mb4_unicode_ci',
        supportBigNumbers: true,
        bigNumberStrings: true
    },
    pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
    },
    timezone: '+08:00'  //东八时区
});
module.exports = {
    Sequelize:Sequelize,
};

11.创建数据库映射文件

在schema文件夹下user.js,该文件的主要作用就是建立与数据表的对应关系,也可以理解为代码的建表。

module.exports = function (sequelize, DataTypes) {
    return sequelize.define('user', {
        id: {
            type: DataTypes.UUID,
            defaultValue: DataTypes.UUIDV1,
            primaryKey: true
        },
        username: DataTypes.STRING,
        password: DataTypes.STRING,
        createdAt: {
            type: DataTypes.DATE
        },
        updatedAt: {
            type: DataTypes.DATE
        }
    }, {
        freezeTableName: true
    });
}

12.模型应用、使用

在config/db.js文件中新增

const Sequelize = require('sequelize');
const sequelize = new Sequelize('data-base', 'root', 'root', {
    host: 'localhost',
    dialect: 'mysql',
    operatorsAliases: false,
    dialectOptions: {
        //字符集
        charset: 'utf8mb4',
        collate: 'utf8mb4_unicode_ci',
        supportBigNumbers: true,
        bigNumberStrings: true
    },
    pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
    },
    timezone: '+08:00'  //东八时区
});
const user = require('../schema/user')(sequelize, Sequelize.DataTypes);

module.exports = {
    Sequelize:Sequelize,
    user:user
};

在项目中modules目录下创建user.js文件,为用户信息表,该文件对数据库数据进行操作。

const user = require('../config/db').user;

module.exports = {
    async findOne(username){
        return await user.findOne({where:{username:username}})
    },

    async create(userInfo){
        return user.create(userInfo);
    }
}

13.Controller 控制器

在controllers文件夹里新建user.js,主要是对逻辑的处理

const UserModule = require('../modules/user')
const md5 = require('md5')
module.exports = {
    async create(ctx) {
        const content = ctx.request.body;
        const isExistUser = await UserModule.findOne(content.username);
        if (isExistUser) {
            ctx.throw(200, {errorCode: 1, message: '用户名重复'})
        }
        content.password = md5(content.password)
        await UserModule.create(content);
        ctx.body = {errorCode: 0};
    }
}

14.路由

在routes文件夹中新建user.js文件,有关user接口请求的路由都在这个文件里面

const router = require('koa-router')()
const userController = require('../controllers/user')
// 用户
router.prefix('/user')

//创建用户 
router.post('/create', userController.create);
module.exports = router

15.在app.js引用路由文件

在app.js中添加引用路由代码

const user = require('./routes/user')
app.use(user.routes(),user.allowedMethods())

16.允许跨域

const cors = require('koa-cors')
app.use(cors()) //使用cors
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值