为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

视频:5-6 Sequelize初始化配置与注意事项

            5-7 User模型与用户唯一标识设计探讨

课程讲师: 七月

课程内容:

Sequelize创建数据表,步骤:用Sequelize连接数据库,配置一些数据库的参数

new Sequelize时可以接受四个参数:数据库名称、账号、密码、{}

Sequelize可以连接多种数据库。

//config.js中加入数据库的配置项
module.exports = {
    environment: 'dev', //dev开发环境。 prod生成环境
    databse: {
        dbName: 'koa',
        host: 'localhost',
        port: 3306,
        user: 'root',
        password: '123456'
    }
}
//db.js
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
}

主键最基本的两个条件是:不能重复,不能为空。

主键id设计的问题:建议一定是数字,不要用字符串,因为数字的查询性能最好,不要使用随机字符串。

GUID数据量大的时候,查询会比较慢。

安全的系统应该是: 即便知道了别人的id,也不应该拿到别人的数据。

接口必须要有token令牌的保护,否则是不安全的接口。

如果字段在数据表中是主键,可以在init的配置中增加primaryKey:true的配置项

如果字段是自增,可以增加autoIncrement: true的配置项

STRING后边可以加括号,括号中的数字可以定义字段的长度

unique:true可以定义字段是唯一的的。


const { db } = 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连接数据库,和创建数据表。

课程最后七月老师还讲了ID编号设计的问题。


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

https://img1.sycdn.imooc.com//637239d80001989810110625.jpg


https://img1.sycdn.imooc.com//63723b6e00015cc610160635.jpg


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消