안녕하세요. node.js 수강중인 직장인 입니다.
몽고 디비 연결을 집에 있는 나스 도커 컨테이너에서 하려고 하는데..자꾸 오류가 납니다.
//코드
MongoClient.connect('mongodb://아이디:패스워드%40%20@나스.synology.me:27017/디비명, function(에러, client){
if (에러) return console.log(에러)
db = client.db('디비명');
// db.collection('post').insertOne( {이름 : 'John', 나이 : 20} , function(에러, 결과){
// console.log('저장완료');
// })
app.listen(8080, function(){
console.log('listening on 8080')
});
})
//오류 내용
MongoServerError: Authentication failed.
at MessageStream.messageHandler (/경로/node_modules/mongodb/lib/cmap/connection.js:462:30)
at MessageStream.emit (node:events:520:28)
at processIncomingData (/경로/node_modules/mongodb/lib/cmap/message_stream.js:108:16)
at MessageStream._write (/경로/node_modules/mongodb/lib/cmap/message_stream.js:28:9)
at writeOrBuffer (node:internal/streams/writable:389:12)
at _write (node:internal/streams/writable:330:10)
at MessageStream.Writable.write (node:internal/streams/writable:334:10)
at Socket.ondata (node:internal/streams/readable:754:22)
at Socket.emit (node:events:520:28)
at addChunk (node:internal/streams/readable:315:12) {
ok: 0,
code: 18,
codeName: 'AuthenticationFailed'
}
[nodemon] clean exit - waiting for changes before restart
외부접속이 문제인가해서 Robo 3T 라는걸 설치 후 연결해봤는데 거기서는 연결이 잘됩니다.ㅠ
또한 코드에서 연결 주소를 강의에 나온 mongo atlas 에서 받은 주소로도 연결이 잘되구요.
robo 3t에서는 둘 다 연결이 잘됩니다.
패스워드에 특수문자는 16진법으로 해야 한다해서 @와 !를 %40 %20으로 넣었습니다.
구글링을 해도 잘 안나와서..이렇게 게시판에 여쭤봅니다..