【问题标题】:Connection to MongoDB with Mongoose not working使用 Mongoose 连接到 MongoDB 不起作用
【发布时间】:2020-06-21 20:52:21
【问题描述】:

我创建了一个新的 mongoDB 数据库并使用 Express 生成器来创建我的后端文件夹。我想使用 Mongoose 连接到我的 mongoDB 数据库。

我试过了:

const mongoose = require('mongoose');

var options = {
   connectTimeoutMS: 5000,
   useNewUrlParser: true,
  };

mongoose.connect('mongodb+srv://UserName:<password>@cluster1-hxnnz.azure.mongodb.net/CollectionName?retryWrites=true&w=majority',
    options,
    function(err) {
     if (err) {
       console.log(err);
     } else {
       console.info('connection ok');
     }
    }
);

module.exports = mongoose;

Username PasswordCollectionName 被正确替换,我使用 mongodb 给我的链接进行连接。 什么都没有发生,没有显示控制台日志。我尝试了论坛的其他解决方案和猫鼬给出的代码,但没有成功

  • 猫鼬:5.9.4,
  • 快递:4.16.1,

感谢您的帮助。

【问题讨论】:

  • 最好的开始是使用 mongo compass 或 robo3T 等客户端测试您的连接,接下来这是什么 ClusterName ?它必须是您的数据库名称!所以必须打印错误日志或 connection ok ,什么都没有打印?然后检查是否正在调用此文件!或者编写一个简单的 js 文件,仅用于连接并首先对其进行测试,然后将该代码放入您的 node.js 项目中......
  • 我编辑了帖子,集群名称是将在第一次连接期间创建的集合的名称,如果它不存在的话。我可以使用我的连接字符串连接到 mongo compass,我应该怎么做?当我使用 npm start 启动服务器时,express 正确启动。好像没有读取到 mongoDB 的连接文件,但我不知道如何检查
  • 我不明白,因为代码与另一个 MongoDB 集群的另一个连接字符串配合得很好
  • 帖子已关闭,我找到了解决方案。我只是忘记了 `require('./models/bddconnect'); ` 在 app.js 中

标签: node.js mongodb express mongoose database-connection


【解决方案1】:

此代码运行良好。我认为这是您的数据库文件(db.js),您只需将其导入 你的起始文件 (app.js) 需要('./db');

 const mongoose = require('mongoose');
 var options = {
  connectTimeoutMS: 5000,
  useNewUrlParser: true,
  };

mongoose.connect('mongodb+srv://UserName:<password>@cluster1-hxnnz.azure.mongodb.net/CollectionName?retryWrites=true&w=majority',
options,
function(err) {
 if (err) {
   console.log(err);
 } else {
   console.info('connection ok');
 }
}
);

module.exports = mongoose;

出于安全考虑,将 MongoDB 的链接与该文件分开

【讨论】:

  • 是的,当我没有忘记在我的启动文件中导入我的 db.js 时,它正在工作!感谢您提供有关安全性的提示
猜你喜欢
  • 2015-01-28
  • 2017-01-18
  • 2020-12-06
  • 2020-02-22
  • 2020-07-25
  • 2021-06-19
  • 2017-09-09
  • 2018-10-25
  • 2021-05-12
相关资源
最近更新 更多