首页 > 解决方案 > TypeError:无法读取未定义的属性“db”。使用 mongodb atlas 但在本地使用 mongodb 时没有错误

问题描述

当我使用 mongodb 地图集时出现错误,但是当在本地使用 mongodb(安装在我的计算机上的 mongo)时,代码运行得非常好,没有错误。

http.listen(3000, function(){
console.log("Server started");

mongoClient.connect("mongodb+srv://<username>:<password>@myname.anjzd.mongodb.net/<dbname>?retryWrites=true&w=majority", function(error, client){
   var database = client.db("mydatabase");
   console.log("Database connected.");
});

标签: node.jsmongodb

解决方案


那是因为你error从这个回调中得到了一个,因此你client将被设置为null.

我猜错误来自您输入的 URL connect<username>,<password>并且<dbname>分别是您的真实用户名、密码和数据库名称的占位符。假设您的真实用户名、密码和数据库分别是ABC,123myDB,那么您的连接 URL 将是这样的:

let url = "mongodb+srv://ABC:123@myname.anjzd.mongodb.net/myDB?retryWrites=true&w=majority"

如果错误是由其他原因引起的,您可以正确处理以检测原因。

mongoClient.connect(url, function(error, client){
  if (error) return console.log(error);
  var database = client.db("mydatabase");
  console.log("Database connected.");
});

推荐阅读