본문 바로가기

학교수업 이야기/캡스톤 디자인(3-2)7

free-board 기능 자유게시판은 글과 사진을 자유롭게 올리며 의견을 주고 받는 기능을 한다. 게시글은 사진을 여러장 올리거나 안 올릴 수 있다. app.js에 다음과 같은 코드를 작성한다. app.use('/free_board', require('./routes/free_board')); routes 폴더와 util 폴더에 각각 free_board.js라는 파일을 만들고 이전 user와 비슷한 형태로 코드를 작성하면 된다. routes 폴더의 free_board.js 파일에는 다음과 같은 내용이 우선 작성되어야 한다. const express = require('express'); const router = express.Router(); const models = require('../models'); const free.. 2021. 1. 20.
user 기능(2) 이전 글에 이어 user의 기능 중 선호도 관련 기능을 설명하도록 하겠다. 선호도 사진은 사용자의 선호도를 파악하기 위해 데이터베이스에 미리 저장해둔다. 해당 작업은 user 요소에 admin이라는 이름을 저장하며 사전에 이루어진다. 앞으로 설명할 함수들은 이러한 과정으로 만들어진 데이터를 이용하여 진행된다. 선호도를 저장하는 기능이다. router.post('/save_preference', async (req, res, next) => { try{ var result = await user.savePreference(req); return res.json({"result" : true}); } catch(err){ return next(err); } }); savePreference함수를 사용하여 선.. 2021. 1. 6.
user 기능(1) 루트 폴더에 routes라는 폴더와 util이라는 폴더를 생성하여 진행하였다. 기능을 담당하는 함수는 util에 선언하여 반복적으로 사용할 수 있도록 하였고, routes에서는 app.js에 선언하는 대신 router를 이용하여 export하는 것으로 정하였다. const express = require('express'); const router = express.Router(); const models = require('../models'); const user = require('../util/user'); const image = require('../util/image'); router.post('/sign_in', (req, res, next) => { // router contents }).. 2020. 12. 30.
디비 구상(2) 이전 글에 이어서 데이터베이스를 설명하겠다. // comments.js 'use strict'; module.exports = (sequelize, DataTypes) => { const comments = sequelize.define('comments', { commentNum: { type: DataTypes.INTEGER, autoIncrement: true, allowNull: false, primaryKey: true }, postType: { type: DataTypes.INTEGER, allowNull: false }, postNum: { type: DataTypes.INTEGER, allowNull: false }, content: { type: DataTypes.TEXT, allowNu.. 2020. 12. 29.
디비 구상(1) 필요하다 생각한 데이터베이스는 user, free_board, vote_board, vote, comment, recommend, preference, image, furniture이다. 각각의 구상 이유를 목표했던 어플의 기능과 함께 설명하겠다. 사용자는 회원가입을 진행한 후 로그인을 진행한다. (user) 첫 로그인을 한 경우 선호도를 조사한다. 이때 특정 사진을 보여준 후 선택한 값을 전달받는다. (preference) 변경하고자 하는 사진을 등록한다. 이때 대기시간이 생긴다. (image) 대기시간을 활용하여 게시판 기능을 이용할 수 있다. 자유게시판이 있으며 자유롭게 글을 쓸 수 있고 여러사진을 올릴 수 있다. (free_board) 투표게시판이 있으며 사진을 두 장 올려 그 중 투표를 할 수 .. 2020. 12. 29.
서버 개발 시작 서버의 개발은 Express를 이용하기로 하였고, 데이터베이스는 mysql을 사용하며 직접적인 쿼리문 대신 sequelize를 이용하여 다루기로 하였다. 좀 더 직관적이고 이용에 편리함이 있을 것으로 판단하였다. npm init을 하여 기초적인 모듈들을 설치해준다. express를 이용할 것이므로 npm install express --save를 하여 package.json에도 해당 모듈을 추가하여 설치한다. 기타 필요한 mysql 등도 설치해 주어야 한다. mysql2 모듈을 이용할 것이므로 npm install sequelize mysql2를 실행하여 준다. 이후 sequelize init을 하면 몇 개의 폴더, 파일이 생성된다. 이에 대해선 잠시 후 추가적으로 설명하겠다. express를 이용하여 .. 2020. 12. 22.