본문 바로가기
728x90

nodebird9

ts-node | NodeBird | 다양한 케이스를 위한 오버로딩 ※ 인프런 - Node.js에 TypeScript 적용하기(feat. NodeBire) by 조현영 강의를 기반으로 정리한 내용입니다. 오버로딩? 같은 매개변수를 여러 방법으로 설정하는 것 이전 글에서 local.ts 파일에 해당하는 타입 정의를 위해 직접 타이핑을 했었다. 그런데 만약 local 내의 코드를 수정해야 하는 경우라면 어떻게 해야 할까? import * as passport from 'passport'; import * as bcrypt from 'bcrypt'; import { Strategy } from 'passport-local'; import User from '../models/user'; export default () => { passport.use('local', new S.. 2022. 5. 6.
ts-node | NodeBird | 타입 없는 라이브러리 타이핑하기 ※ 인프런 - Node.js에 TypeScript 적용하기(feat. NodeBire) by 조현영 강의를 기반으로 정리한 내용입니다. 본 강의에서는 프론트엔드는 다루지 않기 때문에 대체할만 것들을 직접 작성해본다고 한다. 타입스크립트를 작성할 때 크게 두 가지 방법이 있다. 첫 번째는 리덕스처럼 처음부터 타입스크립트로 코드를 작성하는 방법이고, 나머지 하나는 JS로 먼저 코드 작성 후 타입스크립트를 붙이는 방식이다. 우리는 두 번째 방식으로 타입스크립트를 작성할 것이고, @types/passport-local 라이브러리를 직접 코딩하면서 테스트해볼 것이다. 그래서 기존에 설치했던 이 모듈은 삭제. npm rm @types/passport-local 타이핑은 /back/types에서 할 것이다. tsco.. 2022. 5. 3.
ts-node | NodeBird | 라우터 만들기(3) ※ 인프런 - Node.js에 TypeScript 적용하기(feat. NodeBire) by 조현영 강의를 기반으로 정리한 내용입니다. routes/post.ts 저번에 이어서 계속 post라우터 만들어가자. image를 업로드 하는 라우터는 다음과 같다. router.post('/images', upload.array('image'), (req, res) => { console.log(req.files); if (Array.isArray(req.files)) { res.json((req.files as Express.MulterS3.File[]).map((v) => v.location)); /** * location이라는 메소드는 MulterS3 네임스페이스에만 존재하기 때문에 Multer를 Multe.. 2022. 5. 3.
ts-node | NodeBird | 라우터 만들기(2) ※ 인프런 - Node.js에 TypeScript 적용하기(feat. NodeBire) by 조현영 강의를 기반으로 정리한 내용입니다. routes/user.ts 저번에 user라우터를 만들고 있었고, 이어서 진행해보자. user라우터는 다음과 같이 완성됐다. import * as express from 'express'; import * as bcrypt from 'bcrypt'; import * as passport from 'passport'; import { isLoggedIn, isNotLoggedIn } from './middleware'; import User from '../models/user'; import Post from '../models/post'; import Image fro.. 2022. 5. 2.
ts-node | NodeBird | 라우터 만들기(1) ※ 인프런 - Node.js에 TypeScript 적용하기(feat. NodeBire) by 조현영 강의를 기반으로 정리한 내용입니다. 타입스크립트를 포함한 익스프레스의 라우터를 구현해보자. routes/middleware.ts 우선 미들웨어 파일을 만들 것이다. 이 파일에는 현재 사용자의 인증 여부를 파악하는 함수들을 만든다. import {Request, Response, NextFunction} from 'express'; const isLoggedIn = (req: Request, res: Response, next: NextFunction) => { if (req.isAuthenticated()) next(); else res.status(401).send('로그인이 필요합니다!'); }; co.. 2022. 4. 22.
ts-node | NodeBird | passport 설정 ※ 인프런 - Node.js에 TypeScript 적용하기(feat. NodeBire) by 조현영 강의를 기반으로 정리한 내용입니다. Passport 이제 로그인 인증 기능을 구현하기 위한 passport 미들웨어를 작성할 것이다. 먼저 back 폴더 내에 passport 폴더를 생성하고, 폴더 내에 index.ts를 만든다. 코드는 다음과 같이 작성한다. // passport/index.ts import * as passport from 'passport'; import User from '../models/user'; // 클래스는 그 자체로 타입으로 정의할 수도 있음 import local from './local'; export default () => { passport.serializeUse.. 2022. 4. 22.
ts-node | NodeBird | 시퀄라이즈 ※ 인프런 - Node.js에 TypeScript 적용하기(feat. NodeBire) by 조현영 강의를 기반으로 정리한 내용입니다. 미들웨어 세팅이 끝났으면 이제 시퀄라이즈 설치! npm i sequelize npm i sequelize-cli B -> A -> B -> ... 이렇게 서로를 계속 참조하게 되어 꼬리에 꼬리를 무는 무한 루프가 발생하게 될 것이다. 자바스크립트는 해당 문제를 방지하기 위해 순환 참조되는 상황이 오면 두 모듈 중 하나는 빈 객체({ })로 반환이 되고, 이는 무한루프는 막게 되지만 결국 모듈은 정상적으로 사용할 수 없는 상황이 생기는 것이다. 우리 프로젝트로 다시 이 상황을 보자면, models 폴더 내에 있는 파일들을 읽고 이를 모델로 정의하는 파일인 index.ts가.. 2022. 4. 20.
ts-node | NodeBird | express 미들웨어 ※ 인프런 - Node.js에 TypeScript 적용하기(feat. NodeBire) by 조현영 강의를 기반으로 정리한 내용입니다. 모듈 설치 프로젝트에 필요한 모듈들을 한꺼번에 설치해보자. npm i morgan cors cookie-parser express-session dotenv passport hpp helmet 문제는 대부분 모듈들이 타입을 지원하지 않기 때문에 타이핑을 따로 설치해야 함 npm i @types/morgan @types/cors @types/cookie-parser @types/express-session @types/dotenv @types/passport @types/hpp @types/helmet 아래 모듈들도 필요할 것 같아서? 추가로 설치 npm i passpor.. 2022. 4. 19.
ts-node | NodeBird | 초기 세팅 ※ 인프런 - Node.js에 TypeScript 적용하기(feat. NodeBire) by 조현영 강의를 기반으로 정리한 내용입니다. 타입스크립트에 대한 기본 지식을 배웠고, 이제 조금은 더 심화 학습을 위해 이번 강의를 수강하기로 했다. 나는 주로 node.js로 개발을 하고 있기 때문에 여기에 ts를 적용하는 것을 배워보려고 한다. 강의를 들으면서 TS 활용법을 더 체득시켜가자! 프로젝트 초기 세팅 일단 프로젝트 레포를 먼저 생성한 후, 초기 환경 설정부터 다시 시작! npm init -y 명령어로 package.json 생성, 그후 npm install typescript로 타입스크립트 설치. 나는 npx tsc --init 명령어로 tsconfig.json를 생성했지만, 강사님은 다음과 같이 설.. 2022. 4. 18.
728x90
LIST