Nodo Heroku +: no se puede encontrar el error del module

La aplicación My Node se ejecuta correctamente localmente, pero se encontró con un error al implementar en Heroku. La aplicación utiliza Sequelize en la carpeta /models , que contiene index.js , Company.js y Users.js . Localmente, puedo importar los models usando el siguiente código en /models/index.js :

 // load models var models = [ 'Company', 'User' ]; models.forEach(function(model) { module.exports[model] = sequelize.import(__dirname + '/' + model); }); 

Esto funciona bien, sin embargo, cuando despliego a Heroku, la aplicación se bloquea con el siguiente error:

 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 

Inicialmente pensé que se debía a la distinción entre mayúsculas y minúsculas (mac local frente a heroku linux), pero moví el file, hice un commit de git y luego volví a Company.js y me comprometí de nuevo para asegurar que Company.js esté en mayúscula en el repository de git. Esto no resolvió el problema y no estoy seguro de cuál podría ser el problema.

El problema se debió a la distinción entre mayúsculas y minúsculas y el nombre de file. Mac OS X no distingue entre mayúsculas y minúsculas (pero es consciente) mientras que Heroku está basado en Linux y distingue entre mayúsculas y minúsculas. Al ejecutar heroku run bash desde mi terminal, pude ver cómo la carpeta /models apareció en el sistema de files de Heroku. La solución fue cambiar el nombre de User.js y Company.js en mi sistema local a nuevos files temporales, comprometer los cambios a git, luego renombrar de nuevo a User.js y Company.js teniendo en count la primera letra en mayúscula y luego confirmar los cambios de nuevo a través de git. Anteriormente había intentado cambiar el nombre de los files directamente de user.js a User.js y company.js a Company.js pero los cambios de nombre de file de user.js commit y de mayúsculas y minúsculas no se reflejaban en Heroku.

No puedo ver la solución exacta, pero puedes averiguarlo tú mismo ejecutando heroku run bash para iniciar session en una instancia de Heroku, luego ejecuta el node para ingresar un REPL e intenta requerir las routes directamente.