클론코딩/생활코딩 Express.js

https://opentutorials.org/course/3370생활코딩님의 Express.js강의를 참고하였습니다.1. Express Generator 설치npm으로 설치하며  -g를 통해 전역에 설치한다.npm install -g express-generator    2.Express 프로젝트 생성express 앱이름 으로 프로젝트를 생성하고 npm install 을 통해 package.json 파일에 정의되있는 기본적인 패키지들을 설치받는다. express myappcd myappnpm install//프로젝트 실행npm start     3.파일 구조myapp/├── app.js├── bin/│ └── www├── package.json├── public/│ ├── images/│ ├..
https://opentutorials.org/course/3370생활코딩님의 Express.js강의를 참고하였습니다.1.파일 분리동일한 세부주소를 가진 라우트 핸들러들을 분리한다.       2.express.Router()Express에서 서브 라우터 객체를 생성하는 코드이다.이 라우터 객체를 사용하면 모듈 단위로 라우트를 관리할 수 있고, 이를 통해 어플리케이션의 라우트를 보다 구조화하고, 유지보수하기 쉽게 만듭니다.var express = require('express');var router = express.Router();    3. module.exports = router;router 객체를 외부로 내보내기 위한 코드다른 파일에서 router 객체를 가져와 사용할 수 있게 됩니다.modul..
https://opentutorials.org/course/3370생활코딩님의 Express.js강의를 참고하였습니다.my-express-app/│├── app.js # 애플리케이션의 메인 파일├── package.json # 프로젝트 정보 및 종속성 관리├── package-lock.json # 종속성 버전 관리 파일├── /node_modules # npm 패키지들이 설치되는 폴더 (npm install로 생성됨)│├── /public # 정적 파일(css, js, 이미지 등)이 위치하는 폴더│ ├── /images # 이미지 파일│ ├── /stylesheets # CSS 파일│ └──..
https://opentutorials.org/course/3370생활코딩님의 Express.js강의를 참고하였습니다.1.404 에러페이지가 없을때 나오는 에러 -> 라우터 핸들러 맨 아래에 위치시킨다 (미들웨어는 작성순서대로 작동하기떄문)//오류처리app.use(function(req,res,next){ res.status(404).send('페이지가없어요.')})     2.에러 처리다른 라우터 핸들러에서 next(err)로 에러를 날리면 오류 처리 함수를 통해 오류를 받는다.이때  오류처리함수는 첫번째 인자에 err가 추가되어있다.app.get('/page/:pageId', (request, response,next) => { var filteredId = path.parse(request.pa..
https://opentutorials.org/course/3370생활코딩님의 Express.js강의를 참고하였습니다.1. 정적파일 미들웨어 express.staticExpress에서는 기본적으로 정적파일을 제어하기위한 미들웨어 함수 express.static을 제공한다.app.use(express.static('디렉토리이름'));형식으로 작성하여 파일의 직접적인 제공을 할수있다.app.use(express.static('public'));//http://localhost:3000/images/kitten.jpg    2.가상 경로 접두부정적 디렉토리에 대한 마운트 경로를 지정할수도있다.app.use('/static', express.static('public'));//http://localhost:30..
https://opentutorials.org/course/3370생활코딩님의 Express.js강의를 참고하였습니다.1.next()미들웨어와 라우트 핸들러 사이에서 제어를 넘기기 위해 사용app.use(function (req, res, next) { console.log('Time:', Date.now()); next();});    2.여러개의 미들웨어여러개의 미들웨어가 하나의 라우트 핸들러가 있으면 next()를 통해 해당 라우트핸들러 내부의 다음 미들웨어로 넘어간다.next('route')를 한다면 다음 라우트핸들러로 제어가 넘어간다.app.get('/user/:id', function (req, res, next) { // if the user ID is 0, skip to the nex..
https://opentutorials.org/course/3370생활코딩님의 Express.js강의를 참고하였습니다.1. 기존에 반복되던 코드기존 GET 요청들에 대해 ./data의 파일리스트를 불러오는 함수들이 반복되고있었다.이 함수를 미들웨어로 하여 작동하도록 만든다.fs.readdir('./data', function(error, filelist){});     2. app.use 방식모든 모든 HTTP 메서드(GET, POST, PUT 등)에  대해 미들웨어를 적용이제 본래 fs.readdir 을 사용하던 곳에서 filelist 대신 request.list 로 파일리스트에 접근할수있게되었다.하지만 POST 와같은 곳에도 적용되기에 비효율적이다.app.use(function(request,resp..
https://opentutorials.org/course/3370생활코딩님의 Express.js강의를 참고하였습니다.1.compressionExpress에서 사용되는 미들웨어로, 서버에서 응답을 클라이언트로 전송할 때 데이터를 압축하여 전송할 수 있게 해줍니다.const compression = require('compression');const app = express();// compression 미들웨어 활성화app.use(compression());