본문 바로가기

Project

(27)
20.03.19 ShareBook TIL 유저와 책 테이블에서 한 명의 유저는 여러 가지의 책을 등록할 수 있다 생각해서 일대다 관계를 설정했다고 생각했는데 막상 포스트맨으로 날려보니 유저 아이디가 들어가지 않았다. const token = req.cookies.data; const decoded = jwt.verify(token, String(process.env.JWT_SECRET)); try { if (decoded) { // console.log(decoded); await Books.create({ name: name, publisher: publisher, writer: writer, quelity: quelity, description: description, image: image, isRental: isRental, bookRe..
20.03.18 ShareBook TIL 로그인 함수와 로그인을 했을때 JWT를 사용하여 토큰을 발급해주는 함수를 작성하였다. import { Router, Request, Response, NextFunction } from 'express'; import jwt from 'jsonwebtoken'; import { Users } from '../../../models/Users'; // require('dotenv').config(); // import 'dotenv/config'; const signin = Router(); const jwtSecret = String(process.env.JWT_SECRET); signin.post( '/signin', async (req: Request, res: Response, next: NextF..
20.03.17 ShareBook TIL 회원가입을 위한 signup server api를 작성해 보았다. import { Router, Request, Response, NextFunction } from 'express'; import { Users } from '../../../models/Users'; const singup = Router(); singup.post('/', async (req: Request, res: Response, next: NextFunction) => { const { name, nickname, email, password, gender, region } = req.body; try { const users = await Users.findOne({ where: { email: email, password:..
20.03.16 ShareBook TIL TypeScript-Sequelize를 이용하여 데이터베이스를 생성해보기로 하였다. 일단 user table 하나를 만들기 위해 어떻게 해야하는지 여러 레퍼런스들 찾아보았다. class 문법으로 작성하는 것도 있고 table @ 이런 문법으로 작성하는 것도 있어서 어떻게 적용해야하는지 감이 오질 않았다. 먼저 config 폴더를 만들고 database.ts를 만들었다. // config/database.ts import { Sequelize } from 'sequelize-typescript'; import 'dotenv/config'; export const sequelize = new Sequelize({ database: 'sharebook', dialect: 'mysql', username: pr..
20.03.15 ShareBook TIL Router Controller 설정 // src/interfaces/controller.interface.ts import { Router } from 'express'; interface Controller { path: string; router: Router; } export default Controller; // src/routes/users/users.controller.ts import express, { Request, Response, NextFunction } from 'express'; import Controller from '../../interfaces/controller.interface'; // import express = require('express'); class U..
20.03.14 ShareBook TIL public listen(){ const PORT: number = Number(process.env.PORT) || 4000 this.app.listen(PORT , 0 => { // { console.log(`Server listen on PORT ${PORT}`); }); } private initMiddlewares() { // 미들웨어 사용 this.app.use(cors()); this.app.use(morgan('dev')); this.app.use(bodyParser.json()); this.app.use(cookieParser()); } private initRouter() { this.app.use(this.router); this.router.get(`${this.path}`, thi..
20.03.13 ShareBook TIL 어제는 분명히 server가 작동하였는데 추가 미들웨어들을 설치하고 다시 실행하니 에러가 발생하였다. 그래서 TypeScript형식으로 작성하지 않아서 그런가 싶어서 레퍼런스들을 찾아보았다. 참고 레퍼런스 https://coldsewoo.com/blog/category/web/backend/Typescript/20190920002 [Typescript #3] express 기본 설정 [Typescript #3] express 기본 설정 coldsewoo.com 레퍼런스를 보며 작성해보았지만 import express, { Application, Request, Response } from 'express'; import cors from 'cors'; import bodyParser from 'body-..
20.03.12 ShareBook TIL 킥오프 미팅으로 조언을 받은 뒤 스키마 수정 유저와 도서 테이블에서 굳이 join 테이블이 있어야할 정도로 bareminimum이 크지 않다고 판단 데이터베이스에 어떻게 유저가 찍은 사진을 넣을까? => 사진파일을 서버가 받아서 S3에 저장 => 이미지 url을 받는다?! 좀더 찾아봐야겠다. Typescript node&express 사용 sudo npm i -g typescript typescript 설치 tsc --version 버전 확인 app.ts 생성 tsc init tsconfig.json 생성 tsconfig.json에서 { "target": "es6", "outDir": " ./dist", "rootDir": "./src", "moduleResolution": "node" } 주석제거 및 ..