我遇到以下问题:我的应用程序在localhost上正常运行,但在我的Openshift平台上运行不正确。
我有一个MongoDB数据库,NodeJS后端使用socket.io。
这是连接到我的数据库的URL:
var connection_string = '127.0.0.1:27017/db';
if (process.env.OPENSHIFT_MONGODB_DB_PASSWORD) {
connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" +
process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" +
process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
process.env.OPENSHIFT_APP_NAME;
}
这是我连接数据库的方式:
mongodb.MongoClient.connect("mongodb://" + connection_string, function(err, db) {
这是我的socket连接方式(Openshift case):
var socket = io.connect("http://nodejs-myapp.rhcloud.com:8000"); //io(); for localhost case
这是我正在做的查询:
db.collection('tobaccoStores').ensureIndex({Coordinates:"2dsphere"}).then(function(result) {
db.collection('tobaccoStores').find({
"Coordinates": {$near:
{$geometry:
{type:"Point", coordinates:[coords.coords.lng, coords.coords.lat]},
$maxDistance: coords.maxdistance
}
}
})
因此,当在localhost上运行时,我的查询会返回正确的结果,但不会返回到我的Openshift应用程序。此外,当我在我的Openshift应用程序的mongo shell中运行查询时,也会返回正确的结果......
答案 0 :(得分:0)
发现问题:在我的nodejs应用程序中,我连接到的数据库与您在Openshift服务器上运行mongo
时默认连接的数据库不同。我的数据不在正确的数据库中......没有注意这些细节。