이 레포지토리는 ON-SOPT 27기 서버파트와 클라이언트 파트가 협업하는 합동세미나 내용을 정리하고자 만들어졌습니다.
- 일정 : 2020년 12월 05일(토)
- 스페이스클라우드 API 구현 및 DB 설계
- Language : JavaScript
- Library & Framework : Node.js
- Database : AWS RDS
- ORM : Sequelize
- Deploy : AWS EC2
- ERD(Entity Relation Diagram)
$ git clone https://github.com/SOPT-27-SpaceCloud/spaceCloud-server.git
$ cd [project-name]
$ npm install
$ npm start
(단, 암호 키와 같이 보안이 필요한 파일에 대해서는 Github에 업로드 되어 있지 않습니다.)
/* Post */
db.Post = require('./post')(sequelize, Sequelize);
db.PostDetail = require('./postDetail')(sequelize, Sequelize);
db.Facilities = require('./facilities')(sequelize, Sequelize);
db.PostDetailSelect = require('./postDetailSelect')(sequelize, Sequelize);
db.Hashtag = require('./hashtag')(sequelize, Sequelize);
db.PostDetailImage = require('./postDetailImage')(sequelize, Sequelize);
db.PostHashtag = require('./postHashtag')(sequelize, Sequelize);
/* Banner */
db.Banner = require('./banner')(sequelize, Sequelize);
/** 1 : 1 Post : PostDetail */
db.Post.hasOne(db.PostDetail, { onDelete: 'cascade' });
db.PostDetail.belongsTo(db.Post);
/** 1 : 1 Post : PostDetailSelect */
db.Post.hasOne(db.PostDetailSelect, { onDelete: 'cascade' });
db.PostDetailSelect.belongsTo(db.Post);
/** 1 : N PostDetail : PostDetailImage */
db.PostDetail.hasMany(db.PostDetailImage, { onDelete: 'cascade' });
db.PostDetailImage.belongsTo(db.PostDetail);
/** 1 : N PostDetail : Facilities */
db.PostDetail.hasMany(db.Facilities, {onDelete: 'cascade' })
db.Facilities.belongsTo(db.PostDetail);
/** 1 : N PostDetail : Hashtag */
db.PostDetail.hasMany(db.Hashtag, {onDelete: 'cascade' })
db.Hashtag.belongsTo(db.PostDetail);
/** N : M Post : PostDetail => Hashtag */
db.Post.belongsToMany(db.Hashtag, { through: 'PostHashtag', onDelete: 'cascade' });
db.Hashtag.belongsToMany(db.Post, { through: 'PostHashtag', onDelete: 'cascade' });
{
"development": {
"username": "---",
"password": "---",
"database": "---",
"host": "---",
"dialect": "mysql"
}
}
{
"accessKeyId": "---",
"secretAccessKey": "---",
"region": "---"
}