node.js - 无法将MongoDB与nodejs连接

标签 node.js mongodb


我正在使用 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/

相关文章:

javascript - 如何从 Node 中的api promise 返回对象

node.js - Highcharts-more.js 在 vue-cli 项目中不起作用

javascript - 在 block 外使用值时返回 null

mongodb - 知道某些集合的排序规则的命令是什么?

javascript - 使用 javascript 自动完成显示的城市名称

node.js - Intellij IDEA 解析本地 require() 路径 [node.js]

javascript - 存储过程中的 Mongodb 处理 - JavaScript 中的 BSON 到 JSON

mongodb - 如何在 MongoDb 中存储动态生成的表单的结果?

node.js - 将 REST API 访问限制为仅访问我的网站

mongodb - 蒙戈 : querying for values nested in child arrays where keys are variable