본문 바로가기

공부/노드12

jwt - req.headers.authorization이 undefined인 에러 ✋ 에러코드 Uncaught TypeError: Cannot read property 'split' of undefined 🤦‍♂️ 상황 브라우저에서 localhost:3000/api/articles로 접근하면, 위와 같은 에러가 발생했다. localhost:3000/api/articles의 라우터 router.get('/', async (req, res) => { // 클라이언트에서는 header의 Authorization에 토큰을 넣어서 보냈다. // console.log('req.header어쩌구 저쩌구',req.headers.authorization); // undefined const token = req.headers.authorization.split('Bearer ')[1]; console.. 2021. 6. 28.
express - req와 res 객체 req, res 객체 http 모듈의 req, res 객체를 확장한 것이다. 기존 http 모듈과 express 추가 메서드도 사용할 수 있다. 자주 사용하는 req 객체 요청하는 객체 ( request ) req.app - req객체를 통해 app 객체에 접근할 수 있다. ex ) req.app.get('키'); req.body - body-parser 미들웨어가 만드는 요청 본문을 해석한 객체 req.cookies - cookie-parser 미들웨어가 만든 요청의 쿠키를 해석한 객체 req.ip - 요청의 ip 주소 req.params - 라우트 매개변수에 대한 정보가 담긴 객체 req.query - 쿼리스트링 정보가 담긴 객체 req.signedCookies - 서명된 쿠키들이 담긴 객체 req... 2021. 6. 24.
express - 라우터 Router 객체로 라우팅 분리하기 app.js에 모든 라우팅을 설정하면 app.js 코드가 너무 길어져서 유지보수하기가 힘들다. routes 폴더를 만들어서 따로 라우터 파일들을 모두 관리한다. routes 폴더는 MVC 패턴에서 Controls을 담당한다. 라우팅 분리하는 순서 routes 폴더를 생성한다. routes 폴더에 분리할 라우팅 파일을 생성한다. ( index.js, users.js ... ) 각각의 라우팅 파일을 사용하기 위해 app.js 파일에 불러와 설정을 해준다. index.js 파일 코드 const express = require('express'); const router = express.Router(); // GET / 라우터 router.get('/',(req,res)=>.. 2021. 6. 24.
express- multer multer 미들웨어 이미지, 동영상 등의 파일들을 멀티파트 형식으로 업로드할 때 사용하는 미들웨어 https://github.com/expressjs/multer/blob/master/doc/README-ko.md expressjs/multer Node.js middleware for handling `multipart/form-data`. - expressjs/multer github.com 2021. 6. 24.
express 미들웨어 미들웨어란? 요청(req)과 응답(res)의 중간(미들)에 위치하여 특정 기능을 수행한다. 라우터와 에러 핸들러 또한 미들웨어의 일종이다. 미들웨어는 요청과 응답을 조작해 기능을 추가하기도 하며 나쁜 요청을 걸러내기도 한다. app.use( 미들웨어 ) 미들웨어는 app.use와 함께 사용한다. // 미들웨어 사용해보기 app.use((req, res, next) => { console.log('모든 요청에서 실행된다.'); next(); // next를 해야 다음 일을 하기위해 넘어간다. }); localhost:3000를 호출하면 미들웨어도 실행된다. 반드시, next( )를 미들웨어 마지막에 써줘야한다. next를 실행하지 않으면 다음으로 넘어갈 수 없다. app.use( [, 경로 ] ,미들웨어 .. 2021. 6. 23.
express 시작하기 Express 모듈 설치하기 npm init 으로 package.json 파일을 생성한다. npm i express로 express 모듈을 설치한다. 만약 설치 시, 프로젝트 이름과 모듈명이 같으면 설치가 안될 수 있다. // express 패키지 가져오기 const express = require('express'); // express 모듈을 실행해서 app 변수에 할당하기 const app = express(); express 모듈을 실행시켜 app 변수에 할당한다. 익스프레스 내부에 http 모듈이 있으므로 서버 역할을 할 수 있다. app.set( 키 , 값 ) app.set(키,값)을 사용해서 데이터를 저장할 수 있다. // app.set('port', 포트)로 서버가 실행될 포트를 설정한다... 2021. 6. 23.