programing

노드 서버를 사용하여 MongoDB에 연결 시 주의 사항

bestprogram 2023. 5. 2. 23:05

노드 서버를 사용하여 MongoDB에 연결 시 주의 사항

MongoDB 기본 드라이버로 연결

로 연결하기 다음 했습니다. native driver는 mongodb에 .npm install mongodb --save

const MongoClient = require("mongodb").MongoClient;
const url = "mongodb://127.0.0.1:27017";

const dbName = "game-of-thrones";
let db;

MongoClient.connect(
url,
 { useNewUrlParser: true },
  (err, client) => {
    if (err) return console.log(err);

  db = client.db(dbName);
   console.log(`Connected MongoDB: ${url}`);
   console.log(`Database: ${dbName}`);
  }
);

을 쓸 때 말기에글쓸때을단쓸때▁on▁when을▁i글▁terminal▁the단말.node server.js는 다음 .

(노드:3500) 사용 중지 경고: 현재 서버 검색 및 모니터링 엔진은 사용되지 않으며 향후 버전에서 제거될 예정입니다.새 서버 검색 및 모니터링 엔진을 사용하려면 옵션 {useUnifiedTopology: true}을(를) MongoClient.connect에 전달합니다.연결된 MongoDB: mongodb://127.0.0.1:27017 데이터베이스: 왕좌의 게임

데이터베이스가 연결되어 있지만 경고를 제거하려면 어떻게 해야 합니까?

mongo 버전 확인

 mongo --version

버전 >= 3.1.0을 사용하는 경우 mongo 연결 파일을 ->로 변경합니다.

 MongoClient.connect("mongodb://localhost:27017/YourDB", {
   useNewUrlParser: true,
   useUnifiedTopology: true
 })

에 대한 자세한 내용을 참조하십시오.useUnifiedTopology3.2.1에 옵션이 추가되었습니다. https://github.com/mongodb/node-mongodb-native/releases/tag/v3.2.1 참조하십시오.

제 조언은 그대로 두라는 것입니다(경고를 할 수도 있습니다).useUnifiedTopology: true옵션이 제대로 작동하지 않습니다.

더 정확히 말하면, DBMS에 대한 연결이 끊기는 경우 DBMS는 복원되지 않습니다.현재 버전 3.3.3에서는 이 문제가 해결되지 않습니다.

확인합니다.

저도 같은 오류가 발생하여 아래 템플릿을 사용하여 해결했습니다.

var MongoClient = require('mongodb').MongoClient

const client = new MongoClient(uri, {useUnifiedTopology: true});

client.connect().then((client)=>{
    var db = client.db('db_name')
    db.collection('collection_name').find().toArray(function (err, result) {
        if (err) throw err
        console.log(result);
    })
})

이것은 저에게 효과가 있었습니다. 그리고 지금 그것은 어떠한 차별 경고도 보여주지 않습니다.

이 스레드에 추가하여 다른 종속성과도 관련이 있을 수 있습니다.

예를 들어, NodeJS, MongoDB 또는 Mongoose에 대해 업데이트하거나 설정한 내용은 문제가 되지 않았습니다. 하지만 -connect-mongodb-session업데이트되었으며 동일한 오류를 발생시키기 시작했습니다.이 경우 솔루션은 단순히 버전을 롤백하는 것이었습니다.connect-mongodb-session 전부에서2.3.02.2.0.

이되었습니다.connect-mongodb-session@2.3.1.

여기에 이미지 설명 입력

이것이 제게 효과가 있는 이유입니다.

MongoClient.connect('mongodb://localhost:27017/blogdb', {useUnifiedTopology: true} , (err, client) =>
{
  if (err) throw err;
  const db = client.db('blogdb');
  const collection = db.collection('posts');
  const users = db.collection('users');
  app.locals.collection = collection;
  app.locals.users = users;

});

이 코드는 제가 이전에 가지고 있던 것과 동일한 사용 중지 메시지를 받은 것과 동일합니다.유일한 차이점은 'useUnifiedTopology: true' 행을 추가하지 않았다는 것입니다.

MongoClient.connect('mongodb://localhost:27017/blogdb', (err, client) =>
{
  if (err) throw err;
  const db = client.db('blogdb');
  const collection = db.collection('posts');
  const users = db.collection('users');
  app.locals.collection = collection;
  app.locals.users = users;

});

네, 저도 같은 문제가 있어요, 데이터베이스가 성공적으로 연결되었지만 저는 경고를 폐지하는 경고 메시지에 직면하곤 했습니다.여기 제가 그것을 다루는 데 사용한 몇 가지 짧은 팁이 있습니다. 저는 그것이 당신에게 도움이 되기를 바랍니다.

mongoose.connect(
  database,
  {useUnifiedTopology: true, useNewUrlParser: true, useCreateIndex: true })

를 바꿉니다.yourdbname의 링크와 함께.mongodb..

 mongoose.connect(yourdbname, {useUnifiedTopology: true, useNewUrlParser: true, useCreateIndex: true })
  .then(console.log("mongodb connected successfully...."))
  .catch(err =>console.log(err));

언급URL : https://stackoverflow.com/questions/57546635/warning-on-connecting-to-mongodb-with-a-node-server