Loading

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配置文件
  • 项目描述文件与依赖包
posted @ 2025-03-12 22:24  一起滚月球  阅读(14)  评论(0)    收藏  举报