首先是一个一般性问题:如果我使用原始 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/