분류 전체보기

    [NodeJS] express 오류 : Cannot set headers after they are sent to the client

    yarn start 를 했을 때 문법상 문제가 없다고 했는데,, Request 를 보내니 갑자기 뿜어내는 해당 오류, 이 오류는 무엇인지 찾아보기로 하였습니다. userRouter.route('/token') .get((req, res)=>{}) .post((req,res)=>{ const refreshToken = req.body.refreshToken; if(!refreshToken) res.sendStatus(403); const accessToken = token().issuance(refreshToken, res); res.json({accessToken : accessToken}) }) 제 코드의 일부 입니다. /signup 으로 get 요청을 보내면 작동하는 부분 입니다. 하지만 , 여기서 ..

    [NodeJS] TypeScript 사용 시 Request CustomType

    코드가 잘 보이지 않으신다면 우측 하단의 달 모양을 눌러주시기 바랍니다. 최근 토이 프로젝트를 TypeScript로 진행하며 문제가 생긴 부분이 한 가지 있었습니다. 원래 JavaScript 를 이용해서 JWT 로그인 인증을 구현했을 때 req 객체에 임의의 값을 넣는데 이를 TypeScript로 이용을 하려 하니 문제가 있었습니다. -JavaScript const customMiddleWare = (req, res, next) => { req.authData = { status : 200, jwt : { accessToken : accessToken, refreshToken : refreshToken } } next() } 이런 형태의 코드는 JavaScript 에서는 문제없이 해당 미들웨어를 거쳐서 ..

    [NestJS] 기본 프로젝트 구조 생성 및 CRUD

    글이 잘 보이지 않는다면 우측 하단의 달 모양을 클릭해주시기 바랍니다. NestJS 설치 NestJS 를 시작하는 방법은 우선, 흔히 express 를 설치하듯이 Nest CLI 를 설치후, 프로젝트를 생성하도록 하겠습니다. [project-name] 안에는 생성하고자 하는 프로젝트명을 작성해주시기 바랍니다. npm i -g @nestjs/cli nest new [project-name] 프로젝트를 생성한 뒤 yarn 과 npm 중에서 고르는 화면이 나올텐데, 이 부분은 본인이 편한 방법을 선택하시면 됩니다. 파일 삭제 및 코드삭제 처음 프로젝트를 생성했다면 아래와같은 구조로 되어있을것입니다. src - app.controller.spec.ts - app.controller.ts - app.module...

    [NestJS] NestJS 시작하기 (Express 와의 비교)

    >> 아래 글과 코드가 보이지 않는다면 우측 하단의 달 모양을 클릭해주시기 바랍니다. { // 서비스 코드 }) //NestJS import { Injectable } from '@nestjs/common'; import { Cat } from './interfaces/cat.interface'; @Injectable() export class CatsService { private readonly cats: Cat[] = []; create(cat: Cat) { this.cats.push(cat); } findAll(): Cat[] { return this.cats; } } Exrpess 쪽은 거의 주석처리한곳에 대부분 코드를 작성하거나 다른 함수에서 작업을 하기도 합니다. 하지만, Nest 의 경우는..

    [NodeJS] Mysql 연결하기 [Mysql createPool]

    Mysql 모듈 설치 아래 명령어를 통해 mysql 을 설치해줍니다. yarn add mysql Mysql 모듈 사용하기 설치를 하셨다면, 새로운 js 파일을 만들어 require 시켜줍니다. // pool.js const mysql = require('mysql') 이 후 각자에 맞는 연결을 해주도록 합니다. // pool.js const mysql = require('mysql') const dbConfig = { host: 'localhost', port: 3306, user: 'root', password: 'root', database: 'authtest' } 여기서 createConnection 과 createPool 이 나오게 됩니다. Mysql Pool Connection 과 Pool 의 ..

    [ApiTestServer] 더미데이터 코드 업데이트 V1.0.2 JWT 기능 추가

    스타 한번씩 부탁드립니다! GitHub - vpdls1511/apiTestServer: 프론트 개발 시 api 를 테스트할 수 있는 서버 코드 프론트 개발 시 api 를 테스트할 수 있는 서버 코드. Contribute to vpdls1511/apiTestServer development by creating an account on GitHub. github.com JWT 를 이용한 로그인 관련 기능을 추가하였습니다. 최초 /auth/user 는 accessToken 과 refreshToken 의 최초발급을 위함이며, /auth/token 의 GET, POST 는 순서대로 인증, 재발급 입니다. 인증시 GET 메서드로 헤더에 id 와 accessToken 을 보내주시면 되며, 재발급 시 POST 메서드..

    [Nodejs] 로그인 / 회원가입 [JWT Token]

    글이 잘 보이지 않는다면 우측 하단의 달 모양을 눌러 라이트모드로 변경해주시기 바랍니다. 해당 글은 MacOS 를 기준으로 작성이 되었음을 미리 알려드립니다. WindowOS 를 이용하시는 분은 추후 업로드될 게시글을 기다려주시거나 다른 작성자의 게시글을 확인해주시기 바랍니다. JWT를 이용하는 나만의 이유 예전에는 Session 을 이용해 자동로그인, 인증등을 하고 있었습니다. 하지만 이 기능은 구현하기가 복잡하기도 하고 DB 혹은 서버에 많은양의 데이터를 보관/처리를 하기때문에 성능상 이슈가 발생하고 있었습니다. 이러한 이슈를 해결하기 위해서어떤 방법이 있을까 하다가 찾게 된것이 JWT 였습니다. JWT 는 AccessToken과 RefreshToken 을 클라이언트에서 가지고 있다가 필요할때만 서버..

    [Nodejs] 로그인 / 회원가입 [ 로그인 ]

    글이 잘 보이지 않는다면 우측 하단의 달 모양을 눌러 라이트모드로 변경해주시기 바랍니다. 해당 글은 MacOS 를 기준으로 작성이 되었음을 미리 알려드립니다. WindowOS 를 이용하시는 분은 추후 업로드될 게시글을 기다려주시거나 다른 작성자의 게시글을 확인해주시기 바랍니다. 로그인 라우터 만들기 로그인을 하기 위해 nodejs 에서 코드 작성을 해보도록 하겠습니다. router.post('/login',(req, res) => { console.log(req.body); res.end(); } 해당 라우터는 /user 이후의 경로입니다. post 형식으로 http://localhost:3000/user/login 에 요청을 줄 수 있습니다. 이처럼 해주면 우선, 해당 라우터로 데이터가 들어오게 될텐데..