如何摆脱错误:无法找到模块'模型'在Heroku上

时间:2013-08-27 13:31:37

标签: node.js heroku

我一直收到这个错误:“错误:在Heroku上找不到模块'模型'”。我正在使用Node.JS.我正在使用this Node.JS project

由于篇幅较长,我从Heroku和put them in a gist复制了日志。

以下是摘录:

2013-08-27T12:56:27.792568+00:00 app[web.1]: module.js:340
2013-08-27T12:56:27.791930+00:00 app[web.1]: 
2013-08-27T12:56:27.792873+00:00 app[web.1]:     throw err;
2013-08-27T12:56:27.792873+00:00 app[web.1]:           ^
2013-08-27T12:56:27.794658+00:00 app[web.1]:     at Function.Module._load (module.js:280:25)
2013-08-27T12:56:27.794658+00:00 app[web.1]: Error: Cannot find module 'models'

我在Heroku上设置了我的配置,并设置了mongolab mongodb,设置了配置MONGO_URL,NODE_ENV设置为生产。

您可以找到网站here

有谁知道发生了什么事?谢谢你的帮助!

3 个答案:

答案 0 :(得分:12)

您需要将NODE_PATH=lib设置为heroku的配置变量。

NODE_PATH告诉节点在node_modules目录之外找到模块的位置。

此外,您需要告诉应用程序在生产环境中读取env变量。

因此...

$ heroku config:set NODE_ENV=production
$ heroku config:set NODE_PATH=lib

无需为heroku部署修改任何文件。

答案 1 :(得分:0)

你缺少"模特"在"依赖" package.json的属性。 (我检查了github回购)。

编辑:抱歉,看起来您正在尝试使用/ lib / models /文件夹下的模块。所以在这一行https://github.com/gravityonmars/nodejs-starter/blob/master/index.js#L20中你可以这样做:

需要(' ./ LIB /模型&#39)(表观);

答案 2 :(得分:0)

您只需要重新安装模型即可。

执行npm install models --save,然后将您的应用重新部署到Heroku。

这应该可以解决您的问题。