π§ μλ¦¬λ‘ νλ λͺ¨λ μ¦κ±°μ, μ¬μ΄λνΌμ»€ μλ² μ μ₯μ π§π΅πΆ
db.Category = require('./category')(sequelize, Sequelize);
db.Question = require('./question')(sequelize, Sequelize);
db.Test = require('./test')(sequelize, Sequelize);
db.User = require('./user')(sequelize, Sequelize);
// category : test = 1 : N
db.Category.hasMany(db.Test);
db.Test.belongsTo(db.Category);
// user : test = 1 : N
db.User.hasMany(db.Test);
db.Test.belongsTo(db.User);
// test : question = 1 : N
db.Test.hasMany(db.Question);
db.Question.belongsTo(db.Test);λ‘κ·ΈμΈν μ¬μ©μλ μ£Όμ λ₯Ό μ ν΄ μ¬λ¬ λ¬ΈνμΌλ‘ μ΄λ£¨μ΄μ§ 1μ΄&3μ΄ λ£κΈ° ν μ€νΈλ₯Ό λ§λ€ μ μμ΅λλ€. μ¬μ©μλ μ§μ mp3νμΌμ μ λ‘λνμ§ μκ³ , μ νλΈ Urlκ³Ό μμμκ°μ μ λ ₯νκ² λλλ° μ΄ λ μλ²μμ λ³νκ³Όμ μ΄ μ΄λ£¨μ΄μ§κ² λ©λλ€.
μ¬μ©μλ μ¬μ΄λνΌμ»€μ μ¬λΌμ μλ λͺ¨λ ν
μ€νΈλ€μ μ§μ νλ μ΄ν μ μμ΅λλ€. κ° ν
μ€νΈλ€μ μΉ΄ν
κ³ λ¦¬λ³, κ²μμ΄λ³λ‘ λλμ΄μ λ³Ό μ μμ΅λλ€.
- ν μ€νΈ λ° λ¬Έμ μ‘°ν κΈ°λ₯
- ν μ€νΈ λ° λ¬Έμ μμ±/μμ /μμ κΈ°λ₯
- μ νλΈ mp3 λ³ν λ° μλ₯΄κΈ° κΈ°λ₯
- μ μ λ‘κ·ΈμΈ, νμκ°μ κΈ°λ₯
- μ μ μ 보 λ³κ²½ λ° μ€λ³΅νμΈ κΈ°λ₯
- λ§μ΄νμ΄μ§ μ‘°ν κΈ°λ₯
μ¬μ© ν¨ν€μ§(λͺ¨λ)μ λ€μκ³Ό κ°μ΅λλ€.
"dependencies": {
"aws-sdk": "^2.819.0",
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"express": "~4.16.1",
"http-errors": "~1.6.3",
"jade": "~1.11.0",
"jsonwebtoken": "^8.5.1",
"morgan": "~1.9.1",
"mp3-cutter": "^1.0.6",
"multer": "^1.4.2",
"multer-s3": "^2.9.0",
"mysql2": "^2.2.5",
"sequelize": "^6.3.5",
"sequelize-cli": "^6.2.0",
"youtube-dl": "^3.0.2",
"youtube-mp3-downloader": "^0.7.6",
"ytdl-core": "^4.3.0"
}

