我在我的package.json中使用带有"type": "module"的ES模块。我已经升级到了Sequelize的最新版本(6.6.2)。
我对这行代码有一个问题:
const model = sequelize['import'](path.join(__dirname, file));它位于我的models文件夹中的index.js中。我发现Sequelize删除了v6 (https://sequelize.org/master/manual/upgrade-to-v6.html)中的“导入”功能。我在Stack Overflow上找到了这个答案:https://stackoverflow.com/a/63275525/571723
我试着从那个答案切换到const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes)。但我得到了一个错误的声明require is not defined。这就是我现在被卡住的地方。似乎强制你使用'require',Sequelize倒退了一步,因为我认为使用'import‘的ES模块是Node当前和未来的最佳实践。
发布于 2021-06-04 03:30:49
是的,你是对的。在导入之后,至少删除了“upgrading Sequelize from v5 to v6”方法。所以试着这样做:
const path = require('path');
const Sequelize = require('sequelize');
const sequelize = new Sequelize('db_name', 'db_user', 'db_pass', {});
const modelPath = path.join(__dirname, './path/to/model/file');
const model = require(modelPath).default(sequelize, Sequelize);https://stackoverflow.com/questions/67827111
复制相似问题