오늘해야할일들
인프런 강의 듣기 [2개째 듣는중]
알고리즘 문제풀이
제로초 자바스크립트 영상1개 보기 [3개 시청함]
socket.io test 및 적용해보기 [실패~!]
마이페이지-테스트페이지 api 작성 [완료]
상세페이지를 위한 데이터 테이블 만들기 [완료]
상세페이지 챌린지 참여한 사용자 리스트 api 작성 [완료]
상세페이지 테이블 중첩하기 [완료]
제로초 강의
프로그래밍 사고력 : 알고리즘 = 순서도를 잘 그릴줄알아야한다.
순서도를 그리는 이유 = 단순히 문법만배워서는 프로그램을 만들수없다.
인프런 강의
const express = require('express');
const cookieParser = require('cookie-parser');
const morgan = require('morgan');
const path = require('path');
const session = require('express-session');
const nunjucks = require('nunjucks');
const dotenv = require('dotenv');
const passport = require('passport')
dotenv.config();
const pageRouter = require('./routes/page');
const authRouter = require('./routes/auth');
const {sequelize} = require('./models')
const passportConfig = require('./passport')
const app = express();
passportConfig() //패스포트 설정
app.set('port', process.env.PORT || 8001);
app.set('view engine', 'html');
nunjucks.configure('views', {
express: app,
watch: true,
});
sequelize.sync({force:false}) //sync는 promise이기때문에 .then , catch를 붙여서 성공인지 오류인지를 확인하면 좋다
.then(()=> {
console.log('데이터베이스 연결 성공')
})
.catch((error)=> {
console.error(err)
})
app.use(morgan('dev'));
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(session({
resave: false,
saveUninitialized: false,
secret: process.env.COOKIE_SECRET,
cookie: {
httpOnly: true,
secure: false,
},
}));
//세션 아래에 위치해야한다.
app.use(passport.initialize())
//해당부분이 실행되면 ./passport/index.js가 실행된다.
app.use(passport.session())
app.use('/', pageRouter);
app.use('/auth', authRouter);
//404 처리 미들웨어
app.use((req, res, next) => {
const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`);
error.status = 404;
next(error);
});
//500 에러 미들웨어
app.use((err, req, res, next) => {
res.locals.message = err.message;
res.locals.error = process.env.NODE_ENV !== 'production' ? err : {};
res.status(err.status || 500).render('error');
});
//서버 실행
app.listen(app.get('port'), () => {
console.log(app.get('port'), '번 포트에서 대기중');
});
일반적으로 흔히사용하는 sequelize 중첩하는 코드
ex)예제 코드
const user = await User.findOne({
include: [{
model:Comment, model:Challenge
}]
})
User 테이블과 Comment 테이블을 중첩한 내용이다.