javascript - 如何在带有 Controller 的 Node.js Express 中使用 Sequelize?

标签 javascript node.js sequelize.js

首先是一个一般性问题:如果我使用原始 sql 请求或每个 session /请求一个对象,我应该对所有请求使用一个sequelize 对象(实例)吗?我可以对所有请求使用相同的模型对象(实例)吗? (线程安全?)

如果我使用express croncontroler/router模型,我应该在哪里放置sequelize对象?作为服务器文件中的全局变量?

谢谢

最佳答案

如果我正确理解你的问题,那么“一个 Sequelize 对象(实例)”意味着例如:

const sequelize = new Sequelize(
  config.database,
  config.username,
  config.password,
  config
);

如果是这样,那么可以重用该 sequelize 变量。无需为每个请求创建单独的实例。对于模型也是如此 - 您不需要根据请求创建新模型。 JavaScript 没有线程,因此线程安全不是这里的问题。

Express/sequelize 对文件结构没有规定,因此放置sequelize 对象的位置取决于您。如果您的应用程序很简单,那么可以先将其放入一个服务器文件中。但是,随着应用程序的增长,您肯定会希望将sequelize提取到它自己的文件中,例如sequelize.js,甚至多个文件 - 每种模型类型一个 - 例如。博客、类别等,并带有对它们进行分组的索引文件 - 例如:

/models/index.js
/models/blogs.js
/models/categories.js

关于javascript - 如何在带有 Controller 的 Node.js Express 中使用 Sequelize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52517090/

相关文章:

javascript - 抓取拖放的项目作为 <div> 的子节点

javascript - 如何封装和创建可维护的 JavaScript

node.js - nodejs sequelize 连接查询

typescript - 如何使用 typescript 正确创建表格

javascript - jQuery 最接近(DOM 树内部和外部)

javascript - Django 和 AngularJS

javascript - Express 模块不可用

javascript - 卡住了nodejs回调

javascript - 将express/mongodb/websockets项目迁移到什么?

node.js - Sequelize : How to add additional model info not in the table/columns?