Sequelize 实例变量

在开始一些操作之前,我们来了解一下 sequelize 实例。我曾经说过,了解一个npm 包最快的方法就是查看它的 d.ts 文件。有机会的话,我推荐大家还是可以学一波 TypeScript ,不说立马用起来,只是看得懂 d.ts 文件会方便很多(前提是你有成熟的 JS 功底)。

我这里使用的是 sublime text,跳转是按的 F12,假如大家使用的是 vscode,或者是 webstorm,大家可以按住 Ctrl 或者 Command 再点击即可跳转到该类型的定义。

打开node_modules/@types/sequelize/index.d.ts 文件,大概在 5535 - 5831 行。或者也可以查看官方的API

  1. 5535: interface Sequelize extends SequelizeStaticAndInstance, Hooks<any> {
  2. .......
  3. 5831

有的人就说了,我x,还要看 API,还要看定义文件,我要你何用?但是,我想对你说,这些都是如何学习的方法,并不是你不学习的理由,闭着眼睛是学不会的。

他有些什么?

属性、方法其实不多,也就十几来个。

  1. Sequelize: 保存模块的构造器引用
  2. models: 可以拿到定义好了的模型
  3. getDialect(): 返回一个字符串,说明是通过何种数据库进行连接的,比如 `mysql`
  4. getQueryInterface(): 拿到 QueryInterface 的实例变量
  5. define(): 定义一个模型,从定义文件里面注释的篇幅我们就可以知道它的重要性
  6. model(): 传递一个模型名称字符串,然后拿到模型
  7. isDefined(): 传递一个模型名称字符串,判断是否已经定义过了。
  8. import():导入定义模型文件的一种方式
  9. query(): 执行 sql 语句的一个方法
  10. set(): 设置数据库变量的一个方法
  11. escape(): 设置转义字符串
  12. createSchema() schema 其实就是 PostgreSQL 的表
  13. showAllSchemas()
  14. dropSchema()
  15. dropAllSchemas()
  16. sync() 通过模型定义创建数据库表格
  17. truncate() 清空所有通过表中的数据
  18. drop() 删除所有通过 sequelize 定义的表
  19. authenticate() 验证数据库连接
  20. validate() 进行验证的一些方法
  21. transaction() 开启事务
  22. close() 关闭连接
  23. databaseVersion() 数据库版本

我也尝试了多次 schame 的一些方法,发现什么都没有发生,于是我仔细的去查看了一下注释。关于 schema 的一些东西 请注意注释里有这样一句话。schame 其实是 PostgreSQL 的概念,这里不做关于PSQL过多讲解。

  1. not a database table. In mysql and sqlite, this command will do nothing.