http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고, 확장성도 떨어진다. 이런 불편 사항을 해결해주는 대표적인 웹 서버 프레임워크가 익스프레스이다 1. 익스프레스 프로젝트 시작하기 익스프레스 프로젝트 먼저 package.json을 제일 먼저 생성해야 한다. package.json { "name": "learn-express", "version": "0.0.1", "description": "익스프레스를 배우자", "main": "add.js", "scripts": { "start": "nodemon app" }, "author": "newjeans", "license": "MIT", "dependencies": { "express": "^4.18.2" }, "devDependencies": { "..
Node Package Manager의 약어로, 이름 그대로 노드 패키지 매니저를 의미한다. 간단하게 다른 사람들이 만든 소스 코드들을 모아둔 저장소라고 생각하면 된다. 모듈이 다른 모듈을 사용할 수 있듯, 패키지도 다른 패키지를 사용할 수 있는데, 이런 관계를 의존 관계라고 한다. 1. package.json으로 패키지 관리하기 패키지는 버전별로 관리를 해야한다. 설치한 패키지의 버전을 관리하는 파일이 바로 package.json이다. 따라서 노드 프로젝트 시작 전 package.json부터 만들고 시작한다 package.json 생성 명령어 : npm init 1. npm init 입력 시 아래와 같이 나옴. This utility will walk you through creating a packa..
클라이언트에서 보내는 요청은 누가 보내는지 모른다는 단점이 있다. 누가 보내는지 기억하기 위해 서버는 요청에 대한 응답을 할 때 쿠키라는 것을 같이 보낸다. 하지만 쿠키는 유효시간이 있으며 단순한 '키-값'의 쌍이다. 쿠키는 요청의 헤더(Cookie)에 담겨 전송되고, 브라우저는 응답의 헤더(Set-Cookie)에 따라 쿠키를 저장한다. cookie.js const http = require('http'); http.createServer((req, res) => { console.log(req.url, req.headers.cookie); res.writeHead(200, { 'Set-Cookie': 'mycookie=test'}); res.end('Hello Cookie'); }) .listen(80..
1. 요청과 응답 server1.js const http = require('http'); http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'}); res.write('Hello Node!'); res.end('Hello Server!'); }) .listen(8080, () => { console.log('8080번 포트에서 서버 대기 중입니다!'); }); res 객체 res.writeHead : 응답에 대한 정보를 기록하는 메서드이다. 첫 번재 인수로 성공 요청임을 의미하는 200, 두번째 인수로는 응답에 대한 정보를 보내는데, 콘텐츠 형식이 HTML임을 알린다. 이부분을 헤더..
https://nodejs.org/dist/latest-v14.x/docs/api/fs.html File system | Node.js v14.21.3 Documentation nodejs.org fs 모듈은 파일 시스템에 접근하는 모듈이다. 즉, 파일을 생성하거나 삭제하고, 읽거나 쓰고, 폴더를 만들거나 지울 수 있다. readme.txt 저를 읽어주세요 readFile.js const fs = require('fs'); fs.readFile('./readme.txt', (err, data) => { if (err) { throw err; } console.log(data) console.log(data.toString()); }); console.log(data) 는 Buffer를 출력하기 때문에 t..
1. 내장객체 알아보기 1) global 브라우저의 window와 같은 전역 객체이다. 전역 객체이기 때문에 모든 파일에서 접근 가능 window처럼 생략 가능(console, require도 global의 속성), global 속성에 값을 대입하면 다른 파일에서도 사용 가능하다. (하지만, 이렇게 하는건 유지보수에 좋지 않다) 1. globalA.js module.exports = () => global.message; 2. globalB.js const A = require('./globalA'); global message = '안녕하세요.'; console.log(A()); 2) console console도 노드에서는 window대신 global 객체 안에 들어 있다.브라우저의 console 객..