const mongoose = require('mongoose');
const connect = () => {
//배포 전(개발중)일때는 debug 하도록
if (process.env.NODE_ENV !== 'production') {
mongoose.set('debug', true);
}
mongoose.connect('mongodb://root:nodejsbook@localhost:27017/adming'), {
dbName: 'nodejs',
useNewUrlParser: true,
useCreateIndex:true
}, (error) => {
if (error) {
console.log('mongodb error');
}
else {
console.log('mongodb connect');
}
}
}
mongoose.connection.on('error', (error) => {
console.error('몽고디비 연결 에러', error);
});
mongoose.connection.on('disconnected', () => {
console.error('몽고디비 연결이 끊겼습니다. 연결을 재시도합니다.');
connect();
});
module.exports = connect;
type:자료형
require: 필수 여부
default: 기본값
unique: 고유여부
ref: 특정 컬랙션의 문서와 연결할 수 있음
const mongoose = require('mongoose');
const { Schema } = mongoose;
const { Types: { ObjectId } } = Schema;
//ref: 'User': 이 ID는 User 컬렉션의 문서와 연결
// populate를 사용하면 댓글 작성자의 정보를 가져올 수 있음
const commentSchema = new Schema({
commenter: {
type: ObjectId,
required: true,
ref: 'User',
},
comment: {
type: String,
required: true,
},
createdAt: {
type: Date,
default: Date.now,
},
});
module.exports = mongoose.model('Comment', commentSchema);