我正在openshift上尝试mongodb和nodejs,使用mongojs在nodejs和mongodb之间进行交互。
在 mongoshell 中,我运行了“use nodejs”并定义了一个“scores”集合。我在其中保存了一些数据并且它正确显示。
在nodeserver的app.js文件中 我有
self.routes['/db'] = function(req, res) {
var db = require("./db");
db.scores.find(function(err,docs){res.send(docs);});
};
在 db.js 文件中我有
var dbName = "/nodejs";
var databaseUrl = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" + process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" + process.env.OPENSHIFT_MONGODB_DB_HOST + ":" + process.env.OPENSHIFT_MONGODB_DB_PORT+ dbName;
// "username:password@example.com/mydb"
var collections = ["scores"]
var db = require("mongojs").connect(databaseUrl, collections);
module.exports = db;
当我访问 url mydomain.com/db 时无法获取任何数据
有人可以指出我做错了什么吗?数据库正在连接。我无法从乐谱集合中找到所有内容。
self.routes['/db'] = function(req, res) {
var db = require("./db");
db.scores.find(function(err,docs){res.send(docs);});
};
最佳答案
我认为你应该使用collection方法来使用你的分数集合。就像下面这样:
db.collection('scores').find(function(err,docs){res.send(docs);});
或者使用 toArray 函数来确保检索对象数组。
db.collection('scores').find().toArray(function(err, docs) {
console.dir(docs);
res.send(docs)
}
关于node.js - 如何通过mongojs模块从nodejs查询mongodb? (服务器是openshift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594804/