2013-02-14 100 views
1

我有啓動時崩潰一個geddyJs應用..GeddyJs(框架的NodeJS)部署到Heroku上雪松堆棧崩潰

崩潰日誌是:

2013-02-14T04:04:19+00:00 heroku[run.4236]: Starting process with command `geddy -e production` 
2013-02-14T04:04:19+00:00 app[web.1]: 
2013-02-14T04:04:19+00:00 app[web.1]: module.js:340 
2013-02-14T04:04:19+00:00 app[web.1]:  throw err; 
2013-02-14T04:04:19+00:00 app[web.1]:   ^
2013-02-14T04:04:19+00:00 app[web.1]: Error: Cannot find module '/app/config/true' 
2013-02-14T04:04:19+00:00 app[web.1]:  at Function.Module._resolveFilename (module.js:338:15) 
2013-02-14T04:04:19+00:00 app[web.1]:  at Function.Module._load (module.js:280:25) 
2013-02-14T04:04:19+00:00 app[web.1]:  at Module.require (module.js:362:17) 
2013-02-14T04:04:19+00:00 app[web.1]:  at require (module.js:378:17) 
2013-02-14T04:04:19+00:00 app[web.1]:  at config.readConfig (/app/node_modules/geddy/lib/config.js:49:24) 
2013-02-14T04:04:19+00:00 app[web.1]:  at _readConfig (/app/node_modules/geddy/lib/cluster/master.js:36:30) 
2013-02-14T04:04:19+00:00 app[web.1]:  at async.AsyncBase.runItem (/app/node_modules/geddy/node_modules/utilities/lib/async.js:108:10) 
2013-02-14T04:04:19+00:00 app[web.1]:  at async.AsyncBase.next (/app/node_modules/geddy/node_modules/utilities/lib/async.js:113:12) 
2013-02-14T04:04:19+00:00 app[web.1]:  at Master.start (/app/node_modules/geddy/lib/cluster/master.js:257:11) 
2013-02-14T04:04:19+00:00 app[web.1]:  at Object.utils.mixin.startCluster (/app/node_modules/geddy/lib/geddy.js:64:9) 
2013-02-14T04:04:19+00:00 heroku[run.4236]: State changed from starting to up 
2013-02-14T04:04:20+00:00 heroku[web.1]: Process exited with status 1 
2013-02-14T04:04:20+00:00 heroku[web.1]: State changed from starting to crashed 

我Procfile是:

web: geddy -e $NODE_ENV 

我的package.json文件是:

{ 
     "name": "new-gorelative", 
     "version": "0.0.1", 
     "auther": "Mike DeVita <[email protected]>", 
     "dependencies": { 
      "geddy": "0.6.x", 
      "handlebars": "*" 
     }, 
     "engines": { 
     "node": "0.8.x", 
     "npm": "1.1.x" 
     } 
} 

回答

1

我想通了。

編輯config/production.js文件並刪除/註釋以下行(端口,主機名)

var config = { 
    //port: '3000', 
    // hostname: '0.0.0.0' 
}; 

添加app.js javascript文件到您的應用程序的根目錄,在此設置CONFIGS將覆蓋production.js

var geddy = require('geddy'); 

geddy.startCluster({ 
    hostname: process.env.IP || '127.0.0.1', 
    port: process.env.PORT || '3000', 
    // you can manually set this to production, or set an environment variable via heroku.. 
    environment: 'production' 
    // just uncomment the below line, and delete the above line. 
    // you will need to set an environment variable in heroku by running 
    // heroku config:set NODE_ENV=production 
    //environment: process.env.NODE_ENV || 'development' 
}); 

一個Procfile文本文件添加到您的應用程序的根目錄

web: node app.js 

在您的.gitignore文件中刪除config\secrets.json的行 - 注意:這是不安全的,因爲它會公開您的cookie的祕密散列。

1

部署文檔已更新,以反映部署到heroku(等等)所需的當前步驟。新的更改將會/應該在那裏更新。

+0

是的,這是錯的..配置文件不能有js在他們.. – gorelative 2013-02-14 17:28:49

相關問題