【金秋打卡】第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编号设计的问题。
七月老师非常注重在讲编程知识的同时,讲编程思维,讲知识和知识之间的关系。编程是实践性非常强的工作,学习知识最好的方法是放到项目中。做项目的目的不是做项目,最终要做出来自己的项目,业务承载的是编程知识。明天继续刷后边的课程。
共同學習,寫下你的評論
評論加載中...
作者其他優質文章

