我正在遵循文档,并根据阅读的内容正确执行。我正在连接到我的Mongo Atlas服务器。服务器已连接,我能够连接到DB
和Collection
。但是DB
和Collection
并未传递给db object
。
我尝试用控制台记录值,并重构了逻辑,但仍然没有解决方案。
// MongoDB Connection Setup
let db = {};
let MongoClient = require("mongodb").MongoClient;
let uri = process.env.MONGODB_CONNECT_URL;
let client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
assert.strictEqual(null, err);
console.log('Connected Successfully to MongoDB!');
db.client = client.db("cosmosdb");
db.collection = client.db('cosmosdb').collection('cosmos');
console.log("Database Values: ", db) // This actually returns values
return db;
});
console.log('Database: ', db); // Not returning values
app.set('port', process.env.PORT || 3000);
let server = app.listen(app.get('port'), () => {
console.log(`Express server listening on port: `, server.address().port)
});
server.db = db;
当我console.log
db
时,我希望看到
Database: {
client: // values
collection: // values
}
这就是我要回来的东西
Database: {}
答案 0 :(得分:0)
已编辑
您的uri
是否按以下方式分配? (mongodb+srv
)
let uri = `mongodb+srv://${dbUser}:${dbPwd}@${dbHost}/test?retryWrites=true`;
let client = new MongoClient(uri, { useNewUrlParser: true });
答案 1 :(得分:0)
connect()调用中缺少一个参数,您有“ err”,但是应该是(err,client)。所以对我来说,如下所示:
var db = {};
var MongoClient = require('mongodb').MongoClient;
//Use connect method to connect to the Server
MongoClient.connect(process.env.MONGODB_CONNECT_URL, { useNewUrlParser: true }, function (err, client) {
assert.equal(null, err);
db.client = client;
db.collection = client.db('newswatcherdb').collection('newswatcher');
console.log("Connected to MongoDB server");
});