首页 > 解决方案 > 如何使用 mongoose 将后端 nodejs 连接到 mongodb atlas?

问题描述

我正在尝试连接到 cloud.mongodb.com。但是在运行时出现错误。

const express = require('express');
const cors = require('cors');
const bodyParser = require("body-parser");
const logger = require('morgan');
const Data =  require("./data");
const mongoose = require("mongoose");


const API_PORT = 5000;

/// database config
const DB_KEY = "mongodb+srv://twituet:<mypassWord>@cluster0-ziifr.mongodb.net/test?retryWrites=true";

mongoose
  .connect(
    DB_KEY, {useNewUrlParser: true}
  )
  .then(() => {
    console.log("Connected to database!");
  })
  .catch((error) => {
    console.log("Connection failed!");
    console.log(error);
  });

但我收到错误:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\think>cd C:\Users\think\Documents\Coding\ReactApp\twituet\server

C:\Users\think\Documents\Coding\ReactApp\twituet\server>npm run dev

> server@1.0.0 dev C:\Users\think\Documents\Coding\ReactApp\twituet\server
> nodemon index.js

[nodemon] 1.18.10
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node index.js`
listent http://localhost:5000
Connection failed!
{ MongoNetworkError: connection 4 to cluster0-shard-00-00-ziifr.mongodb.net:2701
7 closed
    at TLSSocket.<anonymous> (C:\Users\think\Documents\Coding\ReactApp\twituet\s
erver\node_modules\mongodb-core\lib\connection\connection.js:276:9)
    at Object.onceWrapper (events.js:277:13)
    at TLSSocket.emit (events.js:194:15)
    at _handle.close (net.js:600:12)
    at TCP.done (_tls_wrap.js:388:7)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }

这是我安装的包:

安装包:

标签: node.jsmongodbmongoose

解决方案


从您的服务器检查 IP 白名单或防火墙。

https://github.com/Automattic/mongoose/issues/5237


推荐阅读