반응형
서론
express.js를 mongodb와 연결하는 중에 계속 connection error가 났다. mongoose docs에서는 아래와 같이 특정 db에 연결하라고 되어있지만, 연결이 되질 않는다.
mongoose.connect('mongodb://localhost:27017/myapp');
해결법
connect 메서드에서 url에 바로 db이름을 설정해주는 방법이 아닌, option으로 넘겨주면 된다. 그리고 collection은 schema에서 설정해주면 된다. 아래는 코드이다.
require('dotenv').config();
const mongoose = require('mongoose');
mongoose.connect(
`mongodb://${process.env.DB_USER}:${process.env.DB_PASS}@${process.env.DB_HOST}:${process.env.DB_PORT}`,
{
useNewUrlParser: true,
useUnifiedTopology: true,
dbName: 'homepage', //dbName으로 설정하면 된다.
}
);
const db = mongoose.connection;
db.once("open",()=>{
console.log('Connected to mongodb');
});
db.on('error',(err)=>{
console.log(err);
});
const PostSchema = mongoose.Schema({title: String, author: String});
const Post = mongoose.model('post',PostSchema);
//mongoose.mode('post', PostSchema) 첫번째 인자로 collection name을 지정해주면 된다.
Post.findOne({author: 'kimtahen'})
.then(users=>{
console.log(users);
})
반응형
'tech documents > node' 카테고리의 다른 글
cookie, session과 passport.js (0) | 2022.03.02 |
---|---|
npm command 윈도우에서 폴더 삭제 (0) | 2022.02.26 |
[Cheerio],[Axios] 모듈을 사용한 웹 크롤링 - 3 (0) | 2020.04.03 |
[Cheerio],[Axios] 모듈을 사용한 웹 크롤링 - 2 (0) | 2020.04.01 |
댓글