3, JavaScript-Web开发-mysql--使用Sequelize
ORM技术(Object-Relational Mapping)可以把关系数据库的表结构映射到对象上
Sequelize (Node的ORM框架)
建立model 统一规范
- Model存放的文件夹必须在
models文件夹 - 每个Model必须遵守一套规范
- 统一主键,名称必须是id,类型必须是STRING(50);
- 主键可以自己指定,也可以由框架自动生成(如果为null或undefined);
- 所有字段默认为NOT NULL,除非显式指定;
- 统一timestamp机制,每个Model必须有createdAt、updatedAt和version,分别记录创建时间、修改时间和版本号。其中,createdAt和updatedAt以BIGINT存储时间戳,最大的好处是无需处理时区,排序方便。version每次修改时自增。
实现?
代码详见廖雪峰JavaScript教程
- 使用db模块间接地定义Model(不直接使用Sequelize的API)
db.js的作用是统一Model的定义(代码详见教程)
- 数据库配置(三个配置文件)
- 三个配置文件
config-default.js存储默认的配置config-override.js存储特定的配置config-test.js存储用于测试的配置
- 配置:数据库,用户名,密码,端口等等
- 用
config.js实现不同环境读取不同的配置文件,具体规则如下:- 先读取
config-default.js - 如果不是测试环境,就读取
config-override.js,文件不存在就忽略 - 如果是测试环境,就读取
config-test.js。
- 先读取
- 配置文件需要要搭建好的结构才能提高工程能力,兼顾:
- 开发效率
- 避免服务器配置文件泄漏
- 方便执行测试
- 三个配置文件
- 定义
model.js自动扫描并导入所有Model
最后的工程结构:
model-sequelize/
|
+- .vscode/
| |
| +- launch.json <-- VSCode配置文件
|
+- config.js <-- 配置文件入口(导入配置文件)
|
+- confit-default.js <--默认配置文件
|
+- config-test.js <-- 测试配置文件
|
+- db.js <-- 统一Model定义
|
+- models/ <-- 存放所有Model
| |
| +- *.js Pet.js User.js <-- df
|
+- Model.js <-- 导入Model文件
|
+- init-db.js <-- 初始化数据库 Sequelize的sync()方法?
|
+- app.js <-- 业务代码
|
+- package.json <-- 项目描述文件
|
+- node_models/ <-- npm安装的依赖包
- 配置文件
- Model文件
- 初始化数据库
- 业务代码
- VSCode配置文件
- 项目描述文件与依赖包

浙公网安备 33010602011771号