继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

球状闪电2012
关注TA
已关注
手记 25
粉丝 4
获赞 1


课程名称: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语句

http://img2.mukewang.com/6373921e0001729611150369.jpg


http://img.mukewang.com/6373988f000106d110190638.jpg


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP