일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 블록체인
- 벨로포터
- 리액트를 다루는 기술
- 머클루트
- 머클트리
- wget
- 시퀄라이즈
- MariaDB
- 리액트
- Sequelize
- 자바스크립트
- 전역설치
- centos
- 라우터
- 노드
- 쉘스크립트
- 솔리디티
- 설치
- 이더리움
- npm
- 환경변수
- 깃허브
- 우분투
- 변수
- immer
- Docker
- 일반유저
- node.js 교과서 따라하기
- wsl
- 리눅스
- Today
- Total
목록기록/node.js 교과서 따라하기 (16)
코드코코
/*미들웨어 미들웨어 간 데이터 전달하는 방법 -세션을 사용한다면 req.session 객체에 데이터를 넣어도 되지만, 세션이 유지되는 동안에 데이터도 계속 유지됨. -요청이 끝날 때 까지만 데이터를 유지하고 싶은 경우 req객체에 데이터를 넣어두면 된다.*/ const morgan = require("morgan"); app.use((req, rea, next) => { req.data = '데이터넣기'; next(); }, (req, res, next) => { console.log(req.data);//데이터받기 next(); }); //유용한 패턴 : 미들웨어 안에 미들웨어를 넣는 방식. //기존 미들웨어의 기능을 확장할 수 있다. app.use(morgan('dev')); //위와 아래는 같은 ..
1. app_ver3.js : 미들웨어 사용 const express = require('express'); const app = express(); app.set('port', process.env.PORT || 3000); //next : 다음 미들웨어로 넘어가는 매개변수 app.use((req, res, next) => { console.log('모든 요청에 다 실행됩니다.'); next(); }); app.get('/', (req, res, next) => { console.log('GET / 요청에서만 실행됩니다.'); next(); }, (req, res) => { throw new Error('에러는 에러처리 미들웨어로 갑니다.') }); //에러처리미들웨어 모든 변수를 사용하지 않더라도 매..
1. app_ver1.js const express = require('express'); //Express모듈을 실행해 app변수에 할당 //익스프레스 내부에 http모듈이 내장되어 있어 서버역할 가능. const app = express(); //app.set('port',포트) : 서버가 실행될 포트를 설정 //process.env 객체에 PORT속성이 있다면 사용 //없다면 기본값 3000번 사용 app.set('port', process.env.PORT || 3000); app.get('/', (req, res) => { //express에서는 res.write나 res.end 대신 res.send 사용 //문자열대신 html으로 응답하려면, res.sendFile 메서드 사용. 단, 파일 경로..
1. cluster.js //cluster 모듈 : 기본적으로 싱글 프로세스로 동작하는 노드가 CPU 코어를 모두 사용할 수 있게 해주는 모듈. //cluster에는 요청을 받아 워커 프로세스에 분배하는 master process와 //실질적인 일을 하는 worker process 가 있다. const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { console.log(`마스터 프로세스 아이디:${process.pid}`); //process.pid : 프로세스 식별자 //CPU 개수만큼 워커를 생산 for (let i =..
1. server1.js const http = require('http'); http.createServer((req, res) => { res.writeHead(500, { 'content-Type': 'text/html; charset=utf-8' }); res.writeHead('Hello Node!'); res.end('Hello Server!'); }) .listen(8089, () => { console.log('8089번 포트에서 서버 대기 중입니다.'); }) // 이 서버에 암호화를 적용하려면 https모듈을 사용해야 함. // 인증기관의 인증이 필요함. //https 모듈 : 웹서버에 SSL암호화를 추가. //SSL이 적용된 웹사이트 방문시 브라우저 주소창에 자물쇠 표시가 등장. 2...
1. cookie.js const http = require("http"); http.createServer((req, res) => { //req.headers: 요청의 헤더 //req.headers.cookie : 쿠키가 들어 있음. console.log(req.url, req.headers.cookie); //응답의 헤더에 쿠키를 기록해야 하므로 res.writeHead사용 //set-Cookie : 브라우저에세 다음과 같은 쿠키 값을 저장하라는 의미 //실제로 응답받은 브라우저는 mycookie=test라는 쿠키를 저장. res.writeHead(200, { "set-Cookie": "mycookie=test" }); res.end("Hello cookie"); }).listen(8088, () ..
a { color: blue; text-decoration: none; } 1-1. restFront.js // 로딩시 사용자 정보를 가져오는 함수 async function getUser() { try { //Axios는 브라우저, Node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리. const res = await axios.get('/users'); const users = res.data; const list = document.getElementById('list'); list.innerHTML = ''; //사용자마다 반복적으로 화면 표시 및 이벤트 연결 //object.keys() 메소드는 객체가 가지고 있는 키들의 목록을 배열로 리턴. //객체의 내장 메소..
1. createServer.js : 서버 만들기 //http서버가 있어야 웹브라우저의 요청을 처리할 수 있으므로 http 모듈 사용. const http = require('http'); //http모듈에는 createServer메서드가 있음. http.createServer((req,res)=>{ //여기에 어떻게 응답할지 적는다. }); 2. server1.js : 서버 실행하기 const http = require('http'); http.createServer((req,res)=>{ //응답에 대한 정보를 기록하는 메서드 - 헤더 res.writeHead(200,{'content-Type': 'text/html; chsrset=utf-8'}); //클라이언트로 보낼 데이터 - 본문 res.wri..