数据不是来自数据库Mongodb Openshift

时间:2015-04-08 11:18:15

标签: node.js mongodb openshift database

我在Openshift上用mongodb创建了nodejs(expressjs)应用程序。 我已经在mongodb服务器上推送了我的数据库(mehendiDB),我可以通过使用rockmongo cartridge在服务器上看到如下

admin(2)
api(3)
local(1)
mehendiDB(5)
  Comments(10)
  Likes(10)
  Posts(8)
  Users(9)
  system.indexes(4)

虽然我可以看到上传到服务器上的数据,但是当我用来自users.js的以下代码检索它时,除了空数组之外我什么也得不到。用户编写的代码I ave如下

var express = require('express');
var router = express.Router();
var mongodb = require('mongodb');

router.dbServer = new mongodb.Server(process.env.OPENSHIFT_MONGODB_DB_HOST,parseInt(process.env.OPENSHIFT_MONGODB_DB_PORT));
router.db = new mongodb.Db(process.env.OPENSHIFT_APP_NAME, router.dbServer, {auto_reconnect: true});
router.dbUser = process.env.OPENSHIFT_MONGODB_DB_USERNAME;
router.dbPass = process.env.OPENSHIFT_MONGODB_DB_PASSWORD;

router.db.open(function(err, db){
  if(err){ throw err };
  router.db.authenticate(router.dbUser, router.dbPass, {authdb: "admin"}, function(err, res){
    if(err){ throw err };
  });
});

router.get('/', function (req, res){
    router.db.collection('Users').find().toArray(function(err, names) {
      console.log("Printing output : " + names);
      res.header("Content-Type:","application/json");
      res.end(JSON.stringify(names));
    });
});

module.exports = router;

PS:当我检查它时,我在日志控制台(nodejs.log)中没有收到任何错误。并显示“打印输出”

提前致谢。

1 个答案:

答案 0 :(得分:0)

您是否确认过上传数据的数据库名称与您在应用程序中使用的process.env.OPENSHIFT_APP_NAME相同?