2014-09-11 42 views
-1

下从我的CF推日志转储:我无法将我的Node.js推送到Bluemix上的Mongodb后端项目。实例创建失败

2014-09-09T15:47:35.92 + 0530 [应用程序/ 0] ERR 2014-09-09T15:47:35.97 + 0530 [DEA] OUT实例(索引0)未能开始接受连接 2014-09-09T15:47:55.71 + 0530 [DEA] OUT使用guid 20dba222-e0e6-453c-96a9-429940bc7002开始应用程序实例(索引 0) 2014-09-09T15:47:57.59 + 0530 [API] OUT使用 guid 20dba222-e0e6-453c-96a9-429940bc7002有效载荷: {“cc_partition”=>“默认”, “droplet”=> “20dba222-e0e6-453c-96a9-429940bc7002”, “version”=>“832505e6-a95d-4696-910e-a8d4a74a7005”, “instance”=>“4ff487a75a674aa79b234cc1bd8f9a3d”,“index”=> 0, “reason”=>“CRASHED”,“exit_status”=> 0, “exit_description”=> “应用 情况下退出”, “crash_timestamp”=> 1410257878} 2014-09-09T

这是我manifest.yml文件看起来像:

applications: 
- name: nodetestSDB 
    memory: 128M 
    command: node app.js 
    services: 
    - mongodbnode 

这就是我的package.json文件的外观:

{ 
    "name": "nodetest2", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
    "start": "node ./bin/www" 
    }, 
    "dependencies": { 
    "express": "~4.8.6", 
    "body-parser": "~1.6.6", 
    "cookie-parser": "~1.3.2", 
    "morgan": "~1.2.3", 
    "serve-favicon": "~2.0.1", 
    "debug": "~1.0.4", 
    "jade": "~1.5.0", 
    "mongodb": "*", 
    "monk": "*" 
    } 
} 

在app.js环境变量:

if (process.env.VCAP_SERVICES) { 

     var env = JSON.parse(process.env.VCAP_SERVICES); 
     if (env['mongodb-2.2']) { 
     var mongo = env['mongodb-2.2'][0]['credentials']; 
     } 

    var db = monk(mongo.url); 
} 
+0

你有更多的产出?你还可以从你的应用程序粘贴更多的代码吗? – 2014-09-11 18:14:19

回答

0

它看起来像你有两个不同的启动命令为你的应用程序。

在manifest.yml中,您使用的是“node app.js”,而在您使用的“package.json”中是“node ./bin/www”。

尝试让这两个文件匹配,这应该有所帮助。让我知道如果它不起作用。

0

app.js:

的console.log( 'VCAP SERVICES:' + JSON.stringify(process.env.VCAP_SERVICES,NULL,4));

var mongoUrl;

如果(process.env.VCAP_SERVICES){

变种vcapServices = JSON.parse(process.env.VCAP_SERVICES);

为(在vcapServices VAR SVCNAME){

if (svcName.match(/^mongo.*/)) { 

    mongoUrl = vcapServices[svcName][0].credentials.uri; 

    mongoUrl = mongoUrl || vcapServices[svcName][0].credentials.url; 

    break; 

} 

}

}

别的

{

mongoUrl = “本地主机:27017/SScheduler”;

}

控制台。日志('Mongo URL:'+ mongoUrl);

//数据库 var mongo = require('mongoskin');

var db = mongo.db(mongoUrl,{native_parser:true}); - > through bluemix

// var db = mongo.db(“mongodb:// localhost:27017/nodetest2”,{native_parser:true}); - >通过本地设置

我试图这样,它的工作为本地和通过bluemix

1

请看看我在我的博客使用MongoDB的具有Bluemix职位。您也可以检查GitHub abd Devops中的代码。很可能你没有解析VCAP_SERVICES的权利。我都用了Node.js的& NodeExpress

http://gigadom.wordpress.com/2014/07/27/a-bluemix-recipe-with-mongodb-and-node-js/ http://gigadom.wordpress.com/2014/08/04/elements-of-crud-with-nodeexpress-and-mongodb-using-enide-studio/ http://gigadom.wordpress.com/2014/08/07/spicing-up-a-ibm-bluemix-cloud-app-with-mongodb-and-nodeexpress/

问候 Ganesh神

相关问题