2013-03-16 54 views
1

我正在使用nodejs来访问Parse。它在当地很好地工作。但是,当我的代码推到Heroku的,我得到了如下错误:使用node.js在Heroku中找不到模块'Parse'

6T13:34:58+00:00 app[worker.1]: 

2013-03-16T13:34:58+00:00 app[worker.1]: module.js:340 

2013-03-16T13:34:58+00:00 app[worker.1]: throw err; 

2013-03-16T13:34:58+00:00 app[worker.1]: at Function.Module._resolveFilename (module.js:338:15) 

2013-03-16T13:34:58+00:00 app[worker.1]: at Function.Module._load (module.js:280:25) 

2013-03-16T13:34:58+00:00 app[worker.1]: at Module.require (module.js:364:17) 

2013-03-16T13:34:58+00:00 app[worker.1]: at Object.Module._extensions..js (module.js:474:10) 

2013-03-16T13:34:58+00:00 app[worker.1]: **Error: Cannot find module 'Parse'** 

2013-03-16T13:34:58+00:00 app[worker.1]:^

2013-03-16T13:34:58+00:00 app[worker.1]: at require (module.js:380:17) 

2013-03-16T13:34:58+00:00 app[worker.1]: at Object.<anonymous> (/app/server.js:2:10) 

2013-03-16T13:34:58+00:00 app[worker.1]: at Module._compile (module.js:456:26) 

2013-03-16T13:34:58+00:00 app[worker.1]: at Module.load (module.js:356:32) 

2013-03-16T13:34:58+00:00 app[worker.1]: at Function.Module.runMain (module.js:497:10) 

2013-03-16T13:34:58+00:00 app[worker.1]: at Function.Module._load (module.js:312:12) 

2013-03-16T13:34:59+00:00 heroku[worker.1]: Process exited with status 8 

2013-03-16T13:34:59+00:00 heroku[worker.1]: State changed from up to crashed 

但我可以用“工头开始”,这是Heroku的模拟器上运行我的代码。

作为@PeterLyons请求。如下概要文件:当我把代码的Heroku

worker: node server.js 

的的package.json

{ 
"name": "app name", 
"description": "app description", 
"version": "1.0.0", 
"private": true, 
"dependencies": { 
    "cron": ">=1.0.1", 
    "jsdom" : ">=0.5.2", 
    "parse" : "*" 
    } 
} 

,我可以看到它正确地获取的解析依赖我。

[email protected] /tmp/build_3jl0a1qf6bwt3/node_modules/parse 
    [email protected] /tmp/build_3jl0a1qf6bwt3/node_modules/parse/node_modules/localStorage 
    [email protected] /tmp/build_3jl0a1qf6bwt3/node_modules/parse/node_modules/xmlhttprequest 
    Dependencies installed 
-----> Building runtime environment 
-----> Discovering process types 
     Procfile declares types -> worker 

我不知道为什么在运行时出现错误。

感谢

+2

请发送你的'package.json'和'Procfile'。第一个猜测是你的package.json文件没有正确地列出'parse'模块作为依赖项。 – 2013-03-16 13:58:48

+0

感谢Peter Lyons,我已经更新了我原来的帖子。 – 2013-03-17 00:28:09

回答

4

在您的.js文件中,使用小写“p”的require('parse')。 JavaScript和node.js包名称区分大小写。

+0

太好了。我认为OSX是区分大小写的。 – 2013-03-17 09:56:30

+0

默认情况下,OSX HFS文件系统不区分大小写,但Heroku dynos是linux和大小写敏感的文件系统。在任何情况下,节点约定都是区分大小写的模块和包名称,因此始终需要使用匹配大小写的模块,因此不会有任何问题。 – 2013-03-17 14:23:54

+0

谢谢,我稍后会密切关注。 – 2013-03-17 21:32:23

2

2013-03-16T13:34:58+00:00 app[worker.1]: **Error: Cannot find module 'Parse'**

确保模块是你package.json的一部分。

+0

是的,它在我的package.json中。我可以在本地运行应用程序,并使用“工头开始”。 – 2013-03-17 00:29:20

+0

请看看我更新的帖子。谢谢。 – 2013-03-17 00:36:25