我在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)中没有收到任何错误。并显示“打印输出”
提前致谢。
答案 0 :(得分:0)
您是否确认过上传数据的数据库名称与您在应用程序中使用的process.env.OPENSHIFT_APP_NAME相同?