Heroku + Węzeł: Nie można znaleźć błędu modułu
Aplikacja My Node działa dobrze lokalnie, ale podczas instalacji na Heroku wystąpił błąd. Aplikacja korzysta z Sequelize w a/models
folder, który zawieraindex.js
, Company.js
iUsers.js
. Lokalnie mogę zaimportować modele przy użyciu następującego kodu w/models/index.js
:
// load models
var models = [
'Company',
'User'
];
models.forEach(function(model) {
module.exports[model] = sequelize.import(__dirname + '/' + model);
});
Działa to dobrze, jednak po wdrożeniu do Heroku aplikacja ulega awarii z następującym błędem:
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
Początkowo myślałem, że jest to spowodowane wrażliwością na wielkość liter (lokalny Mac vs Heroku Linuks), ale przeniosłem plik, wykonałem git commit, a następnie cofnąłem się i ponownie zatwierdziłem, aby zapewnićCompany.js
jest wielkimi literami w repozytorium git. Nie rozwiązało to problemu i nie jestem pewien, na czym polega problem.