require('dotenv').config()
const password = process.env.DB_PW
const url = `mongodb+srv://sikim0721:${password}@cluster0.tqbj5n0.mongodb.net/?retryWrites=true&w=majority`
new MongoClient(url).connect().then((client)=>{
console.log('DB연결성공')
db = client.db('forum')
app.listen(8080, () => {
console.log('http://localhost:8080 에서 서버 실행중')
})
}).catch((err)=>{
console.log(err)
})
환경변수 파일 .env를 설치해준다. 그리고 그 파일에 비밀번호를 저장한 후, module.exports를 꼭 해준다.
module.exports를 하지 않아서 아틀라스 인증 오류가 발생했다.
그리고 계속 오류가 발생했는데 왜인가 하니 ${}를 사용하려면 (')가 아닌 백틱 기호(`)를 사용해야 된다는 것을 gpt한테 도움을 받아서 수정해보니 비밀번호가 암호화 된 채 DB에 로그인 된다.
module.exports 문법
module.exports = 옮길 변수명을 적어야 exports를 할 수 있다.
오류 메세지
MongoServerError: bad auth : authentication failed
at Connection.onMessage (/Users/SaintKim/Documents/forum/node_modules/mongodb/lib/cmap/connection.js:202:26)
at MessageStream.<anonymous> (/Users/SaintKim/Documents/forum/node_modules/mongodb/lib/cmap/connection.js:61:60)
at MessageStream.emit (node:events:517:28)
at processIncomingData (/Users/SaintKim/Documents/forum/node_modules/mongodb/lib/cmap/message_stream.js:124:16)
at MessageStream._write (/Users/SaintKim/Documents/forum/node_modules/mongodb/lib/cmap/message_stream.js:33:9)
at writeOrBuffer (node:internal/streams/writable:392:12)
at _write (node:internal/streams/writable:333:10)
at Writable.write (node:internal/streams/writable:337:10)
at TLSSocket.ondata (node:internal/streams/readable:809:22)
at TLSSocket.emit (node:events:517:28) {
ok: 0,
code: 8000,
codeName: 'AtlasError',
connectionGeneration: 0,
[Symbol(errorLabels)]: Set(2) { 'HandshakeError', 'ResetPool' }
}
[nodemon] clean exit - waiting for changes before restart
'Node.js' 카테고리의 다른 글
server.js (0) | 2024.02.10 |
---|---|
Login - MongoDB (0) | 2024.02.09 |
list.ejs - 삭제기능 구현 오류 (0) | 2024.02.06 |
수정 오류 해결 - correction.ejs (0) | 2024.02.04 |
ejs - 문법 오류 에러 (0) | 2024.02.04 |