我的 Node 应用程序在本地运行良好,但在部署到 Heroku 时遇到错误。该应用程序在一个文件夹中使用 Sequelize /models
,其中包含index.js
,Company.js
和Users.js
. 在本地,我可以使用以下代码导入模型/models/index.js
:
// load models
var models = [
'Company',
'User'
];
models.forEach(function(model) {
module.exports[model] = sequelize.import(__dirname + '/' + model);
});
这很好,但是,当我部署到 Heroku 时,应用程序崩溃并出现以下错误:
Error: Cannot find module '/app/models/Company'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at module.exports.Sequelize.import (/app/node_modules/sequelize/lib/sequelize.js:219:24)
at module.exports.sequelize (/app/models/index.js:60:43)
at Array.forEach (native)
at Object.<anonymous> (/app/models/index.js:59:8)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
Process exited with status 8
最初我认为这是由于区分大小写(本地 mac 与 heroku linux),但我移动了文件,进行了 git 提交,然后移回并再次提交以确保Company.js
在 git 存储库中大写。这并没有解决问题,我不确定问题可能是什么。