部署到Node.js
时,我的Heroku
应用程序中出现模型导入错误。
2016-02-10T20:40:04.712617+00:00 app[web.1]: > node ./bin/www
2016-02-10T20:40:04.712615+00:00 app[web.1]: > comic@0.0.0 start /app
2016-02-10T20:40:05.770633+00:00 app[web.1]: throw err;
2016-02-10T20:40:05.770629+00:00 app[web.1]: module.js:341
2016-02-10T20:40:05.770637+00:00 app[web.1]: at Function.Module._resolveFilename (module.js:339:15)
2016-02-10T20:40:05.770636+00:00 app[web.1]: Error: Cannot find module '../models/Comic'
2016-02-10T20:40:05.770638+00:00 app[web.1]: at Module.require (module.js:367:17)
2016-02-10T20:40:05.770634+00:00 app[web.1]: ^
2016-02-10T20:40:05.770640+00:00 app[web.1]: at Module._compile (module.js:413:34)
2016-02-10T20:40:05.770641+00:00 app[web.1]: at Object.Module._extensions..js (module.js:422:10)
2016-02-10T20:40:05.770639+00:00 app[web.1]: at require (internal/module.js:16:19)
2016-02-10T20:40:05.770642+00:00 app[web.1]: at Module.load (module.js:357:32)
2016-02-10T20:40:05.770637+00:00 app[web.1]: at Function.Module._load (module.js:290:25)
2016-02-10T20:40:05.770640+00:00 app[web.1]: at Object.<anonymous> (/app/routes/create.js:2:13)
2016-02-10T20:40:05.770643+00:00 app[web.1]: at Module.require (module.js:367:17)
2016-02-10T20:40:05.770642+00:00 app[web.1]: at Function.Module._load (module.js:314:12)
2016-02-10T20:40:05.804819+00:00 app[web.1]:
我已尝试在heroku run bash
require('./models/Comic')
会话中node
和app
从require('../models/Comic')
子目录中运行/app/routes/
来测试require
require
有效。
Comic
的{{1}}的唯一实例位于routes
文件夹中的三个路由中。它们都具有完全相同的var myVar = require('../models/Comic');
。
答案 0 :(得分:1)
我发现了heroku
:
a)从Git获取信息。即使我在本地文件中进行了大小写更改并推送到Git,但案例并没有改变。然后,当使用Linux的heroku
上需要该文件时,它找不到该文件。
b)仅更改heroku run bash
文件的名称似乎没有任何影响。我假设我没有做某种部署步骤,或者我需要做一些额外的事情(我试过heroku restart
但没有骰子)。
希望这可以帮助别人。