본문 바로가기

Programming

(465)
7. 익스프레스 (1) - 미들웨어 [4] : static 앞서 작성했던 [app.js]를 이어서 살펴보겠습니다.  [app.js] const express =require('express');const morgan = require('morgan');const cookieParser = require('cookie-parser');const session = require('express-session');const dotenv = require('dotenv');const path = require('path');dotenv.config();const app = express();app.set('port', process.env.PORT || 3000);app.use(morgan('dev'));app.use('/', express.static(path.joi..
7. 익스프레스 (1) - 미들웨어 [3] : morgan 앞서서 작성한 app.js를 좀 더 하나씩 살펴보겠습니다.  [app.js] const express =require('express');const morgan = require('morgan');const cookieParser = require('cookie-parser');const session = require('express-session');const dotenv = require('dotenv');const path = require('path');dotenv.config();const app = express();app.set('port', process.env.PORT || 3000);app.use(morgan('dev'));app.use('/', express.static(path.j..
7. 익스프레스 (1) - 미들웨어 [2] : 다양한 미들웨어 적용하기 미들웨어에 대한 기본적인 사용방법을 살펴보았으니, 이제 다양한 미들웨어를 설치하고 각각의 패키지에 대해서 살펴보겠습니다. 여기서 살펴볼 패키지는 morgan, cookie-parser- express-session, dotenv입니다. 참고로 dotenv 패키지는 미들웨어는 아니고 process.env를 관리하기 위한 패키지 입니다. learn-express 폴더에서 다음과 같이 패키지를 설치합니다. $ npm i morgan cookie-parser express-session dotenv  이제 app.js를 수정하고, .env(닷env, 확장자 없으며 .env가 파일명) 파일을 생성합니다.   [app.js] const express =require('express');const morgan = r..
7. 익스프레스 (1) - 미들웨어 [1] 미들웨어는 익스프레스의 핵심적인 요소로, '요청'과 '응답'의 중간(middle)에 위치합니다. 요청과 응답을 컨트롤 하여 여러 기능을 추가하거나 관리해주는 역할을 하죠.  미들웨어를 실행하는 가장 기본적인 방식은 app.use(미들웨어)입니다. 여기에 인수로 라우팅 주소를 포함하여 사용하기도 하는데, 간단히 정리하면 아래의 표와 같습니다.  종류설명app.use(미들웨어)모든 요청에서 미들웨어 실행app.use('/abc', 미들웨어)abc로 시작하는 요청에서 미들웨어 실행app.post('/abc', 미들웨어)abc로 시작하는 POST 요청에서 미들웨어 실행  우선 앞선 아티클에서 작성했던 app.js를 미들웨어를 포함하여 수정하고 살펴보겠습니다.   [app.js] const express =req..
7. 익스프레스 (1) - express 기본 [2] 앞선 아티클에서 express 모듈의 기본적인 사용 방법에 대해서 살펴보고 있었습니다. 이어서 살펴보도록 하겠습니다.   7. 익스프레스 (1) - express 기본 [1]앞서서 살펴보았던 http 모듈의 사용과 관련해서, 요청 메서드와 주소에 따라서 응답을 보내는 예제를 작성했던 것을 기억하실 겁니다.   5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [5]앞선 아nozeroslope.tistory.com   [app.js] const express =require('express');const app = express();app.set('port', process.env.PORT || 3000);app.get('/', (req, res) => { res.send('Hello, ..
7. 익스프레스 (1) - express 기본 [1] 앞서서 살펴보았던 http 모듈의 사용과 관련해서, 요청 메서드와 주소에 따라서 응답을 보내는 예제를 작성했던 것을 기억하실 겁니다.   5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [5]앞선 아티클에서 작성하던 RESTful 서버 구현 예제를 이어서 계속 진행해 보겠습니다.   [restFront.css]a { color: blue; text-decoration: none;}  [restFront.html] home about 등록하기   [restFront.js] // 로딩 시 사용nozeroslope.tistory.com  이 때 요청 메서드와 주소에 따라서 if문을 중첩하여 사용했습니다. 익스프레스 프레임워크는, 이러한 불편함을 개선하고 http 모듈의 요청/응답 객체에 여러가지..
6. 패키지 매니저 (1) - npm [7] ○ 버전 표시 옵션 버전 표기에는 옵션이 존재합니다. 앞서 package.json에서 볼 수 있었던 SemVer 버전 앞에 '^'가 붙어있는 것이 가장 대표적인 예입니다. 하나씩 살펴보도록 하겠습니다.  가장 흔하게 볼 수 있는 것이 ^인데, 이는 마이너 버전까지만 설치/업데이트를 한다는 의미입니다. npm i express@^1.1.1이라면, 1.1.1 이상 2.0.0 미만 버전까지 설치됩니다(2.0.0은 설치되지 않음). 헷갈리면 1.x.x로 기억하세요. ~는 패치 버전까지만 설치한다는 의미입니다. npm i express@~1.1.1이라면, 1.1.1 이상 1.2.0 미만까지 설치됩니다(1.2.0은 설치되지 않음). 역시 1.1.x로 기억하시면 됩니다.  참고로 마이너 버전의 경우 대부분 하위 호환..
6. 패키지 매니저 (1) - npm [6] ○ patch-package 간혹 설치한 패키지에서 문제가 발생하는 경우도 있습니다. 그럴 경우에는 node_modules 내부 피키지를 수정하는 것도 가능합니다. 단, 이 경우에는 npm i를 실행하게 될 경우 직접 수정한 내용이 초기화 된다는 약점이 있습니다. 그래서 node_modules 내부의 수정 사항을 영구적으로 반영해주는 patch-package 패키지가 있습니다.  사용법은 다음과 같습니다. 우선 package.json을 아래와 같이 수정하고나서 patch-package 패키지를 설치합니다.   "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "postinstall": "patch-package" },  ..