Javascript

【金秋打卡】第22天 《Node.js+Koa2+MySQL 打造前后端分离精品项目》

本文主要是介绍【金秋打卡】第22天 《Node.js+Koa2+MySQL 打造前后端分离精品项目》,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!


课程名称:Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

课程章节:第5章 LinValidator校验器与Sequelize Orm生成MySQL数据表

视频:5-8 Sequelize个性化配置与数据维护策略

课程讲师: 七月

课程内容:

这节课七月老师详细讲解了如何使用Sequelize自动建立数据表。其关键在与db.js这个配置文件 和user.js这个模型。 db.js中主要要配置Sequelize要用到的数据库名、密码、主机名、端口、时区等信息

user.js模型中,要配置数据表的名字、字段的名称、字段的类型、长度、是否主键、是否自增等属性。

这些都配置好之后,在app.js中require user.js 执行node app.js之后, Sequelize就会自动创建数据表。确实简单高效。



db.js最后的exports的导出,还是改成了如下的方式

const Sequelize = require('sequelize')
const { dbName, host, port, use, password } = require('../config/config').database
const sequelize = new Sequelize(dbName, user, password, {
    dialect: 'mysql',
    host,
    port,
    logging: true,
    timezone: '+08:00',
    define: {

    }
})

module.exports = {
    //db: sequelize //实际上导出的名称是db
    sequelize    //改成了导出时的名称,还是sequelize
}

user.js做如下的调整

const { sequelize } = require('../../core/db')
const { Sequelize, Model } = require('sequelize')

class User extends Model {

}
User.init({
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    nickname: Sequelize.STRING,
    email: Sequelize.STRING,
    password: Sequelize.STRING,
    openid: {
        type: Sequelize.STRING(64),
        unique: true
    }
}, { 
    sequelize,
    tableName: 'user'//表名称
 })

之后在app.js中加入如下的代码

require('./app/models/user')

运行node.js之后, 就会自动创建数据表

//db.js中如果加入如下代码,则会自动删除表并重建表

sequelize.sync({
    force: true
})

define: {
        timestamps:false,    //不自动生成createAt updateAt两个字段
        paranoid:true,       //生成deleteAt字段
        createdAt: 'create_time',    //将createAt字段名重命名为create_time
        updatedAt: 'update_time',
        deletedAt: 'delete_time',
        underscored: true,    //驼峰改为下划线
    }



课程收获:

这节课演示了用Sequelize生成数据表。将配置写在user.js中,运行app.js之后,能直接生成数据表,确实很方便快捷。db.js中的配置,尤其是define中,经过各种改动,可以设置创建时间、修改时间、删除时间。还能设置字段名是驼峰还是下划线。等等。


七月老师非常注重在讲编程知识的同时,讲编程思维,讲知识和知识之间的关系。编程是实践性非常强的工作,学习知识最好的方法是放到项目中。做项目的目的不是做项目,最终要做出来自己的项目,业务承载的是编程知识。明天继续刷后边的课程。


//node app.js之后,就会自动创建一张数据表,从log里边可以看到建立数据表的SQL语句

https://img2.sycdn.imooc.com/6373921e0001729611150369.jpg


https://img1.sycdn.imooc.com/6373988f000106d110190638.jpg


这篇关于【金秋打卡】第22天 《Node.js+Koa2+MySQL 打造前后端分离精品项目》的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!