我的Node應用程序在本地運行正常,但在部署到Heroku時出現錯誤。該應用在/models
文件夾中使用Sequelize,其中包含index.js
,Company.js
和Users.js
。在當地,我可以使用下面的代碼導入模型/models/index.js
:Heroku + Node:找不到模塊錯誤
// 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 vs heroku linux),但我移動了文件,做了一個git commit,然後再次移動並重新提交,以確保Company.js
在git存儲庫中大寫。這並沒有解決問題,我不知道問題可能是什麼。
很高興幫助,好工作! – dankohn
該死的好偵探工作。 – WildService
我有這個相同的問題,並試圖找出最長的時間。謝謝你,而不是@dankohn! –