sur*_*rth 37 javascript git heroku node.js sequelize.js
我的节点应用程序在本地运行正常,但在部署到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);
});
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是,当我部署到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
Run Code Online (Sandbox Code Playgroud)
最初我认为这是由于区分大小写(本地mac与heroku linux),但我移动了文件,进行了git提交,然后又移回并再次提交以确保Company.js
在git存储库中大写.这并没有解决问题,我不确定问题是什么.
sur*_*rth 82
问题是由于区分大小写和文件名称.Mac OS X不区分大小写(但知道),而Heroku基于Linux并且区分大小写.通过heroku run bash
从我的终端运行,我能够看到/models
文件夹在Heroku的文件系统上的显示方式.解决的办法是重新命名User.js
和Company.js
我的本地系统到新的临时文件,更改提交到Git的,然后重命名回User.js
和Company.js
被铭记大写首字母,然后通过混帐再次提交修改.以前我曾尝试直接重命名文件user.js
到User.js
和company.js
,Company.js
但git提交和区分大小写的文件名更改没有反映在Heroku上.
归档时间: |
|
查看次数: |
20188 次 |
最近记录: |