我正在使用 Nodejs 和 Electron 创建一个应用程序。我想使用 mongodb 来存储数据和东西,但在尝试连接 mongodb 时遇到了一些困难。我正在使用 robomongo,我可以用它连接到数据库,但是当我尝试连接我的 js 文件时,我收到错误。错误是:
Uncaught TypeError: mongo.open is not a function
这是我的代码:
var MongoClient = require('mongodb').MongoClient
var Server = require('mongodb').Server;
var mongo = new MongoClient(new Server('localhost', 27017));
mongo.open((err, mongo) => {
var db = mongo.db('aab');
console.log('Connected!');
if(err) throw err;
mongo.close();
});
感谢您的帮助:)
最佳答案
没有开放。这是一个例子:
let mongoUri;
let dbName;
const collectionName = 'collection';
let mongo = {};
const setEnv = (req) => {
mongoUri = req.env.mongoUri;
dbName = req.env.dbName;
if (dbName === '' || mongoUri === '') {
console.warn('no request.env');
}
};
const mongoDbConnection = async (req) => {
setEnv(req);
try {
if ( !mongo.client || mongo.uri !== mongoUri || !mongo.client.isConnected() || !mongo.db ) {
mongo.uri = mongoUri;
let options = { useNewUrlParser: true };
const c = await MongoClient.connect(mongo.uri, options);
mongo.client = c ;
mongo.db = await mongo.client.db(dbName);
}
return mongo.db;
} catch (e) {
throw `Mongo connection failed \n ${e}`;
}
};
const getCollection = async (req) => {
try {
const db = await mongoDbConnection(req);
console.log('collection connected');
return await db.collection(collectionName);
} catch (e) {
throw e;
}
};
关于node.js - 无法将MongoDB与nodejs连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52881725/