Node アプリはローカルでは正常に動作していますが、Heroku へのデプロイ時にエラーが発生しました。アプリは、 、 、を/models
含むフォルダーでSequelize を使用します。ローカルでは、次のコードを使用してモデルをインポートできます。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 リポジトリで大文字が使用されるようにしました。これで問題は解決しませんでした。何が問題なのかわかりません。