首页 > 解决方案 > 主机和选项之间缺少分隔斜线

问题描述

你好(希望我的英语不要太差)!

我实际上正在尝试使用 MongoDB atlas(在线替代方案)启动一个基本数据库,但我无法通过第一步:连接!我总是遇到同样的错误:

抛出错误;^

24) 在 MongoClient.connect (C:\Users\Etudiant1\Documents\Cours\ProjetPerso\Bot\node_modules\mongodb\lib\mongo_client.js:168:10) 在 Function.MongoClient.connect (C:\Users\Etudiant1\ Documents\Cours\ProjetPerso\Bot\node_modules\mongodb\lib\mongo_client.js:372:22) 在对象。(C:\Users\Etudiant1\Documents\Cours\ProjetPerso\Bot\testMongo.js:4:13)

我已经在堆栈溢出中看到了一些类似的错误,但我没有找到解决问题的方法。我的代码如下:

var MongoClient = require('mongodb').MongoClient;

var uri = "mongodb://Admin:<PASSWORD>@cluster0-shard-00-00-xm3ps.mongodb.net:27017,cluster0-shard-00-01-xm3ps.mongodb.net:27017,cluster0-shard-00-02-xm3ps.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true";
MongoClient.connect(uri, function(err, db) {
 // Paste the following examples here
  if(err){
     throw err;
} else {
     console.log("Connected");
}
db.close();
});

已经谢谢了!

标签: javascriptnode.jsmongodb

解决方案


嘿,劳拉,欢迎来到 StackOverflow!我在下面包含了代码和解释:

MongoClient.connect(uri, { useNewUrlParser: true }, function(err, db) {

  if (err) {

    console.log("error connecting");

  } else {

    console.log("success connecting");
    //do something like insert,update,etc.

    db.close();

  }


});
  1. 看起来您缺少 useNewUrlParser: true
  2. 执行操作后,您将需要使用 db.close() 方法
  3. 出于安全目的,您可能不想显式写出 URL,而是存储为环境变量和引用。

var uri = process.env.mongoURI 而不是 var uri = mongodb://...


推荐阅读