2013-03-16 55 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