๐ข fork/pull request
โจ Node.js ๊ณต์ ๋ฌธ์
ย ย https://nodejs.org/dist/latest-v16.x/docs/api/index.html
โจNode.js ํ์ต
ย ย https://nodejs.dev/learn
: Javascript ๋ฐํ์ (Javascript ์คํ๊ธฐ/์คํ ์ํํธ์จ์ด)
๐ข REPL(Read, Eval, Print, Loop)
ย ย ย ย 2.1 ๋ชจ๋์ด๋?
ย ย ย ย ย ย ย ย ย : ํน์ ํ ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋ ๋ญํ
์ด(๋ณ์, ํจ์, ํด๋์ค ๋ฑ)
ย ย ย ย 2.2 ๋ชจ๋์ ์ข
๋ฅ (3๊ฐ์ง)
ย ย ย ย ย ย ย ย ย 1. ์ฌ์ฉ์ ์์ฑ ๋ชจ๋
ย ย ย ย ย ย ย ย ย 2. ๋
ธ๋ ๋ด๋ถ ๋ชจ๋ (์ค์น ํ์์์)
ย ย ย ย ย ย ย ย ย 3. ๋
ธ๋ ์ธ๋ถ ๋ชจ๋ (์ค์น ํ์)
-- one
import {์ด๋ฆ, ๋์ด, ํ์ด๋๋จน์, ๊ฐ๊ฐ์ ธ์} from './two.js';
console.log(์ด๋ฆ);
console.log(๋์ด);
ํ์ด๋๋จน์();
ํ์ด๋๋จน์();
console.log(๋์ด);
console.log(๊ฐ๊ฐ์ ธ์());
-- two
import * as ๊ฐ์ธํ๋กํ from './two.js';
// const ๊ฐ์ธํ๋กํ = require('./two');
console.log(๊ฐ์ธํ๋กํ.์ด๋ฆ);
console.log(๊ฐ์ธํ๋กํ.๋์ด);
๊ฐ์ธํ๋กํ.ํ์ด๋๋จน์();
๊ฐ์ธํ๋กํ.ํ์ด๋๋จน์();
console.log(๊ฐ์ธํ๋กํ.๋์ด); //์ด๋ฒ์๋ ์ถ๋ ฅ์ด ๋์์ฃ ?
console.log(๊ฐ์ธํ๋กํ.๊ฐ๊ฐ์ ธ์());
* one๊ณผ two์ ๊ฒฐ๊ณผ๋ ๊ฐ์
โจ๊ณต์๋ฌธ์ ์ฐธ๊ณ
https://nodejs.org/dist/latest-v16.x/docs/api/path.html
console.log(`๊ตฌ๋ถ์ : ${path.sep}`); // ๊ตฌ๋ถ์ : \
console.log(`๋๋ ํ ๋ฆฌ : ${path.dirname(__filename)}`); // ๋๋ ํ ๋ฆฌ: ํ์ผ์ฃผ์
console.log(`ํ์ผ์ด๋ฆ : ${path.basename(__filename)}`); // ํ์ผ์ด๋ฆ : app.js
console.log(`ํ์ฅ์ : ${path.extname(__filename)}`); // ํ์ฅ์ : .js
console.log(__filename);
console.log(__dirname);
console.table(path.parse(__filename));
console.log(path.join(__dirname, 'source'))
console.log(path.join(__dirname, 'source'));
console.log(path.join(__dirname, 'app.js')); // ์ฌ์ฉํ์ธ์
console.log(__dirname+'/node'); // ์ฌ์ฉํ์ง ๋ง์ธ์. => ์ค๋ฅ๋จ
6.1 rename, ํ์ผ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ
const fs = require('fs');
let ๋ณ์ = 'hodu' // ์ฌ์ฉ์ ์ด๋ฆ
let ๋ ์ง = new Date()
fs.rename('./test.txt', `./${๋ณ์}${๋ ์ง.getMilliseconds()}.txt`, (err) => {
console.log(err);
})
=> test.txt ํ์ผ์ ์ด๋ฆ์ด ํธ๋36.txt๋ก ๋ณ๊ฒฝ๋จ
6.2 readFile, ํ์ผ ๋ด์ฉ ์ฝ์ด์ค๊ธฐ
fs.readFile('./test.txt', 'utf8', (err, data) => {
console.log(err);
console.log(data);
})
=> test.txt ํ์ผ์ ๋ด์ฉ์ ์ฝ์ด์ด
6.3 writeFile, ์ ํ์ผ ๋ง๋ค๊ธฐ
fs.writeFile('./test2.txt', 'hello world 2', (err)=>{
console.log(err)
});
=> hello world 2๋ผ๋ ๋ด์ฉ์ ๊ฐ์ง test2.txt ํ์ผ์ ์๋กญ๊ฒ ์์ฑํจ
6.4 appendFile, ํ์ผ์์ ๋ด์ฉ์ ์ถ๊ฐํ๊ธฐ
fs.appendFile('./test2.txt', 'hello world 3', (err)=>{
console.log(err)
});
=> test2.txtํ์ผ์์ hello world 3์ด๋ผ๋ ๋ด์ฉ์ ์ถ๊ฐํ๋ค.
ย ย ย ย ย (์ค ๋ฐ๊ฟX)
โ ๋ง์ฝ ์ค ๋ฐ๊ฟ์ ์ํ๋ค๋ฉด
fs.appendFile('./test2.txt', '\nhello world 3', (err)=>{
console.log(err)
});
=> \n
๋ฅผ ์ถ๊ฐํ๋ฉด ๋ด์ฉ์ด ์ค ๋ฐ๊ฟ๋์ด ์ถ๊ฐ๋๋ค.
ย ย ย ย \n
(๊ฐํ๋ฌธ์) : ์ค ๋ฐ๊ฟ ์ฒ๋ฆฌ
ย ย ย ย \w
(ใ
ใ
๋ฌธ์) : ์ค ๋ฐ๊ฟ ์ฒ๋ฆฌ
6.5 copyFile, ํ์ผ์ copyํด์ ๋ค๋ฅธ ํ์ผ ์์ฑํ๊ธฐ
fs.copyFile('./test2.txt', './test3.txt', (err)=>{
console.log(err)
});
=> test2์ ๋ด์ฉ์ด ๋์ผํ test3๋ฅผ ์์ฑํจ
6.6 mkdir, ์๋ก์ด ๋๋ ํ ๋ฆฌ ์์ฑํ๊ธฐ
fs.mkdir('./yoyo', (err)=>{
console.log(err)
});
=> yoyo๋ผ๋ ์ด๋ฆ์ ์๋ก์ด ๋๋ ํ ๋ฆฌ ์์ฑ
โ ์๋ฌ ๋ฐ์ (-4058)
ย &nbserrno: -4058,
ย ย code: 'ENOENT',
ย syscall: 'rename',
ย path:
ย dest:
=> './test.txt'๋ฅผ 'test.txt'๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ์ ์์๋ํจ
const http = require('http'); // ๋ชจ๋ ๊ฐ์ ธ์ด
const server = http.createServer(function(req, res){
res.write(`
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<form action="/" method="get">
id : <input type="text" name='id_value'><br>
pw : <input type="password" name='pw_value'><br>
<input type="submit" value="login">
</form>
</body>
</html>
`);
res.end();
});
server.listen(8080);
๐ข const server = http.createServer(function(req, res)
๐ข writeHead์ end๋ ์ธํธ
๐ข
โจpost๊ด๋ จ ๊ณต์๋ฌธ
https://nodejs.org/ko/docs/guides/anatomy-of-an-http-transaction/
๐ขconst querystring = require('querystring');
โจ ๊ด๋ จ ๋ธ๋ก๊ทธ๊ธ
https://codedragon.tistory.com/2704
โจ ๊ณต์๋ฌธ์
https://nodejs.org/dist/latest-v16.x/docs/api/querystring.html
๐ข fork/pull request
๐ข REPL(Read, Eval, Print, Loop)
๐ขconst server = http.createServer(function(req, res){ });
ย ย ย ย https://velog.io/@minbok/Node.js-http-%EB%AA%A8%EB%93%88
๐ข get/post
๐ข querystring
๐ข ๋ฉ์๋์ ์ด๋ฒคํธ์ ์ฐจ์ด
๐ข ์ฝ๋ฐฑํจ์