노드 서버를 사용하여 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
})
에 대한 자세한 내용을 참조하십시오.useUnifiedTopology
3.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.0
2.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
'programing' 카테고리의 다른 글
XCode 명령줄 도구가 설치되어 있는지 확인하는 방법은 무엇입니까? (0) | 2023.05.02 |
---|---|
제가 언제 수업 대신 구조체를 사용해야 합니까? (0) | 2023.05.02 |
gitstash create로 생성된 stash를 삭제하는 방법은 무엇입니까? (0) | 2023.05.02 |
Git에서 파일 이름 변경 처리 (0) | 2023.05.02 |
각도 - [ngStyle] 조건 적용 방법 (0) | 2023.05.02 |