Process

node.js 콘솔에서 process.[ ] 하면 여러가지 정보를 알 수 있다.

const secretId = process.env.SECRET_ID;
const secretCode = process.env.SECRET_CODE;

Microtask

process.exit

//------------------------------------------------------------------------------------------------url_WHATWG과 일반 URL 차이
const url = require('url');

const { URL } = url;
const myURL = new URL('<http://www.gilbut.co.kr/book/bookList.aspx?sercate1=001001000#anchor>');
console.log('new URL():', myURL);
console.log('url.format():', url.format(myURL));
console.log('--------------------------------');
const parsedUrl = url.parse('<http://www.gilbut.co.kr/book/bookList.aspx?sercate1=001001000#anchor>');
console.log('url.parse():', parsedUrl);
console.log('url.format():', url.format(parsedUrl));
//------------------------------------------------------------------------------------------------crypto_pbkdf2.js_단방향 암호화
const crypto = require('crypto');

crypto.randomBytes(64, (err, buf) =>
{
    const salt = buf.toString('base64');
    console.log('salt:', salt);

    crypto.pbkdf2('비밀번호', salt, 100000, 64, 'sha512', (err, key) =>
    {
        console.log('password:', key.toString('base64'));
    });
});
//------------------------------------------------------------------------------------------------cipher.js_양방향 암호화
const crypto = require('crypto');

const algorithm = 'aes-256-cbc';
const key = 'abcdefghijklmnopqrstuvwxyz123456';
const iv = '1234567890123456';

const cipher = crypto.createCipheriv(algorithm, key, iv);
let result = cipher.update('암호화할 문장', 'utf8', 'base64');
result += cipher.final('base64');
console.log('암호화:', result);

const decipher = crypto.createDecipheriv(algorithm, key, iv);
let result2 = decipher.update(result, 'base64', 'utf8');
result2 += decipher.final('utf8');
console.log('복호화:', result2);
//------------------------------------------------------------------------------------------------4.1_createServer.js
const http = require('http');

http.createServer((req, res) =>
{
    //여기에 어떻게 응답할지 적습니다.
});
//------------------------------------------------------------------------------------------------server1.js_http://www.localhost:8082 or <http://127.0.0.1:8080>
const http = require('http');

http.createServer((req, res) => 
{
    res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
    res.write('<h1>푸하하!</h1>');
    res.end('<p>푸하하삥빵뽕</p>');
})
.listen(8082, () =>
{
    // 서버 연결
    console.log('8082번 포트에서 서버 대기 중입니다!');
});
//------------------------------------------------------------------------------------------------server1-1.js_error 이벤트 리스너 추가
const http = require('http');

const server = http.createServer((req, res) => 
{
    res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
    res.write('<h1>아오!</h1>');
    res.end('<p>아오오오오오</p>');
})
.listen(8083);

server.on('listening', () =>
{
    console.log('8083번 포트에서 서버 대기 중입니다!');
});
server.on('error', (error) => 
{
    console.error(error);
});
//------------------------------------------------------------------------------------------------동시에 서버 두개열기
const http = require('http');

http.createServer((req, res) =>
{
    res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
    res.write('<h1>우마이 돈카츠 맛있겠다!</h1>');
    res.end('<p>아 빨리 먹으러 가고싶다!!!</p>');
})
.listen(8084, () =>
{
    //서버 연결
    console.log('8084번 포트에서 서버 대기 중입니다!');
});

http.createServer((req, res) =>
{
    res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
    res.write('<h1>아 집가고싶다!</h1>');
    res.end('<p>아직도 오전?</p>');
})
.listen(8085, () =>
{
    //서버 연결
    console.log('8085번 포트에서 서버 대기 중입니다!');
});
//------------------------------------------------------------------------------------------------server2.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Node.js 웹 서버</title>
</head>
<body>
    <h1>Node.js 웹 서버</h1>
    <p>만들 준비되셨나요?</p>
</body>
</html>
//------------------------------------------------------------------------------------------------server2.js
const http = require('http');
const fs = require('fs').promises;

http.createServer(async (req, res) =>
{
    try
    {
        const data = await fs.readFile('./server2.html');
        res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
        res.end(data);
    }catch (err)
    {
        console.error(err);
        res.writeHead(500, { 'Content-Type': 'text/plain; charset=utf-8'});
        res.end(err.message);
    }
})
.listen(8086, () =>
{
    console.log('8086번 포트에서 서버 대기 중입니다!');
});
//------------------------------------------------------------------------------------------------

내장모듈

os

→ 웹 브라우저에 사용되는 운영체제의 정보를 가져올 수 있도록 도와주는 모듈

path

→ 폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈