- BFS
- ๋นํธ๋งต
- ๋ค์ต์คํธ๋ผ
- ์นด์นด์ค2021
- nestjs
- ์น๋ฆฐ์ด
- js
- ์ํฐ๋
- ์ฌ๊ท
- ํธ๋ฆฌ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์นด์นด์ค ์ฝํ
- ์์ฝ๋
- go
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- golang
- ๋นํธ๋ง์คํน
- C++
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- DP
- LCs
- ์ด๋ถํ์
- ์๊ณ ๋ฆฌ์ฆ
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- Python
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ํ๋ฆฌ์จ๋ณด๋ฉ
- Union-Find
- ๋ฐฑ์ค
- DFS
- Today
- Total
Hello Ocean! ๐ผ
[Node.js] ์๋ฒ ์์ฑ ๋ณธ๋ฌธ
์ฐธ๊ณ ํ ๋งํฌ
www.zerocho.com/category/NodeJS/post/57774a8eacbd2e9803de0195
๊ณผ์ 1
* ์ด์ ์, node.js๊ฐ ์ค์น๋์ด ์์ด์ผ ํจ.
1. ์ํ๋ ํด๋์ server.js ํ์ผ ์์ฑ
2. ํ์ผ ์์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ
const http = require('http'); // ์๋ฒ ๋ง๋๋ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ
http.createServer((request, response) => { // ์๋ฒ ์์ฑ ๋ฉ์๋
console.log('server start!');
}).listen(8080);
3. cmd ์คํ
4. server.js๊ฐ ์์นํ ํด๋๋ก ์ด๋
5. node server.js
๋ช
๋ น์ด ์
๋ ฅ
6. http://localhost:8080 ์ ์
๊ฒฐ๊ณผ 1
server.js ์ฝ๋ ๋ด์์ console๋ช ๋ น์ด๋ง ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ์๋ ์์ง ์๋ฌด๊ฒ๋ ๋จ์ง ์๋๋ค.
ํ์ง๋ง ์๋ฒ๊ฐ ์์ฑ๋์์์ ํ์ธํ ์ ์๋ค !
์ค๋ช 1
node.js ๋ ๋ชจ๋
์์คํ
์ ๊ตฌ์ถํ๊ณ ์๋ค.
- ๋ชจ๋ : ํ์ํ ๊ฒ๋ง ๋ถ๋ฌ์ฌ ์ ์๊ฒ ์ชผ๊ฐ์ ธ์๋ ๊ฒ
http ์๋ฒ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์, http ๋ชจ๋์ require()๋ก ๋ถ๋ฌ์ http๋ณ์์ ์ ์ฅ.
callback ํจ์ : ์๋ฒ๊ฐ ์คํ๋ ํ์ ๋์
createServer() ์ฝ๋ฐฑ ๋งค๊ฐ๋ณ์ : request
, response
-
request : ์๋ฒ๋ก ๋ณด๋ด๋
์์ฒญ
์ ๋ํ ์ ๋ณด. -
response : ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )๋ก ๋๋ ค์ค
์๋ต
์ ๋ํ ์ ๋ณด.
์๋ฒ๋ ๋๊ธฐ์ค์ด๋ค๊ฐ request๊ฐ ๋ค์ด์ค๋ฉด ํด๋นํ๋ ์ฒ๋ฆฌ๋ฅผ ํ ํ ๊ฒฐ๊ณผ๋ฅผ response ๊ฐ์ฒด๋ก ๋๋ ค์ค๋ค.
request์ response๋ header
, body
๋ก ๊ตฌ์ฑ๋๋ค.
-
header : ํด๋น ๊ฐ์ฒด์ ๋ํ ์ ๋ณด (์ข ๋ฅ, ํฌ๊ธฐ, ์บ์ ์ฌ๋ถ ๋ฑ)
-
body : ์ฃผ๊ณ ๋ฐ๊ณ ์ ํ๋ ๋ด์ฉ
๊ณผ์ 2
๊ณผ์ 1๊ณผ ๋์ผํ์ง๋ง server.js ์ฝ๋๋ฅผ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝ
const http = require('http'); // ์๋ฒ ๋ง๋๋ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ
http.createServer((request, response) => {
// console.log('server start!');
return request
.on('error', (err) => { //request์ error๊ฐ ์์ผ๋ฉด
console.error(err);
})
.on('data', (data) => { //request์ data๊ฐ ์์ผ๋ฉด
console.log(data);
})
.on('end', () => { // request์ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ๋ฐ์์ก์ผ๋ฉด
response.on('error', (err) => { // ์๋ต์ ๋ณด๋ด๋๋ฐ ์๋ต์ ์๋ฌ๊ฐ ์์ผ๋ฉด
console.error(err);
});
response.statusCode = 200; // ์ฑ๊ณต ์ํ ์ฝ๋
response.setHeader('Content-Type', 'text/plain'); // header ์ค์
response.write("hi\n"); // response์ body์ ์ ๋ณด ํ์ฌ
response.end('the end!'); // ์ ๋ณด ํ์ฌ ํ ๋ธ๋ผ์ฐ์ ๋ก ์ ์ก
});
}).listen(8080);
๊ฒฐ๊ณผ 2
์ค๋ช 2
createServer()์ ์ธ์์ธ request์ response ์ฌ์ฉ
์์๋๋ก ์ดํด๋ณด๋ฉด
๋จผ์ , request์ error
๊ฐ ์๋์ง ์ดํด๋ณด๊ณ ์ฒ๋ฆฌํ๋ค.
- ์๋ฌ๊ฐ ์์ผ๋ฉด ์๋ฒ๊ฐ ์ฃฝ๊ธฐ ๋๋ฌธ์ ์๋ฌ ์ฒ๋ฆฌ๋ ๋ฐ๋์ ํ์ํ๋ค.
request์ data
๊ฐ ์์ผ๋ฉด ์ฒ๋ฆฌํ๊ณ , data์ฒ๋ฆฌ๊ฐ ๋ค ๋๋ฌ์์ ์๋ ค์ค๋ค.
request(์์ฒญ)์ด ๋๋๋ฉด response(์๋ต)์ ํด์ค์ผ ํ๋ค.
end์ ์ฝ๋ฐฑ์ response ํด์ค๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก response์๋ error
๊ฐ ์์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒ๋ฆฌํด์ฃผ๊ณ ,
์ํ ์ฝ๋
๋ฅผ ์ฑ๊ณต(200)์ผ๋ก ์ค์ ํ๋ค -> ์ด ๋ด์ฉ์ ๋ํด์๋ ๋์ค์ ์์ธํ ์์๋ด์ผ ํจ
setHeader()
: ์ ์กํ ์ปจํ
์ธ ์ ์ ํ ์ค์ (ํ๋ฌธ ๋ณด๋ผ๊ฑฐ๋๊น text/plain)
- html์ ์ ์กํ๊ณ ์ถ๋ค๋ฉด text/html๋ก ์ค์ ํ๋ฉด ๋๋ค.
body์ค์ ์ ๋ ๋ฉ์๋ : write()
, end()
- end() : write()ํ๊ณ response ์ข ๋ฃ. ์ข ๋ฃํ๋ ์๊ฐ ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋จ
๋ ์ค์ ์ ์ก๋ ๋ฌธ์์ด์ด ๋ธ๋ผ์ฐ์ ์ ํ์๊ฐ ๋๋ค.
'Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Postman] request์ cookie undefined error ํด๊ฒฐ (0) | 2021.08.27 |
---|---|
[VanillaJS] ๊ฐ์ฒด ์ ๋ ฌ ์ด๋ป๊ฒ ํ์ง? (feat. ๋ฌธ์์ด) (0) | 2021.08.23 |
[nodejs-react]Server-Client ํต์ ์ ๋ฌดํ ํธ์ถ ํด๊ฒฐ (0) | 2021.03.01 |
[JavaScript] ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ (0) | 2020.12.28 |
[CSS] ๊ฐ์ (0) | 2020.12.17 |