๐ Study/JS, JQuery
๊ฐ๋จํ ์น์๋ฒ ๋ง๋ค๊ธฐ
kkh1902
2022. 5. 8. 00:00
728x90
๋ฐ์ํ
์๋ก
node.js๋ฅผ ํตํด์ ์๋ฒ๋ฅผ ๊ตฌ์ถํด์ DB์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ appํ๋ก์ ํธ๋ฅผ ํ๊ธฐ์ํด์ ์๋ฒ ๊ณต๋ถ์ค์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์๋ฒ ๊ตฌ์ถ์ ํด๋ณด์๋ค.
๋ณธ๋ฌธ
๋ ธ๋์ ๊ธฐ๋ณธ์ผ๋ก ๋ค์ด ์๋ http๋ชจ๋์ ์ฌ์ฉํ๋ฉด ์น์๋ฒ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ ์๋ฒ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
http ๋ชจ๋์ ๋ก๋ฉํ์ ๋ ๋ฐํ๋๋ ๊ฐ์ฒด์๋ createServer()๋ฉ์๋๊ฐ ์ ์ ๋์ด์๋ค.
์ด ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์๋ฒ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ค.
//http ๋ชจ๋์ ๋ค์ด์๋ ์๋ฒ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ require()๋ฉ์๋๋ก http ๋ชจ๋์ ๋ถ๋ฌ์ต๋๋ค.
var http = require("http");
// ์น ์๋ฒ ๊ฐ์ฒด๋ฅผ ๋ง๋ญ๋๋ค.
var server = http.createServer();
// ์น ์๋ฒ๋ฅผ ์์ํ์ฌ 5000๋ฒ ํฌํธ์์ ๋๊ธฐํฉ๋๋ค.
var port = 5000;
server.listen(port, function () {
console.log("์น ์๋ฒ๊ฐ ์์๋์์ต๋๋ค. : %d", port);
});
//ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ
server.on("connection", function (socket) {
var addr = socket.address();
console.log("ํด๋ผ์ด์ธํธ๊ฐ ์ ์ํ์ต๋๋ค. : %s, %d", addr.address, addr.port);
});
//ํด๋ผ์ด์ธํธ ์์ฒญ ์ด๋ฒค์ธ ์ฒ๋ฆฌ
server.on("request", function (req, res) {
console.log("ํด๋ผ์ด์ธํธ ์์ฒญ์ด ๋ค์ด์์ต๋๋ค.");
console.dir(req);
});
//์๋ฒ ์ข
๋ฃ ์ด๋ฒคํธ ์ฒ๋ฆฌ
server.on("close", function () {
console.log("์๋ฒ๊ฐ ์ข
๋ฃ๋ฉ๋๋ค.");
});
์๋ฒ ๊ฐ์ฒด์์ ์ฌ์ฉํ ์ ์๋ ๋ํ์ ์ธ ๋ฉ์๋
- listen(port, [hostname], [backlog], [callback]) : ์๋ฒ๋ฅผ ์คํํ์ฌ ๋๊ธฐ์ํต๋๋ค.
- close([callback]) : ์๋ฒ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์น์๋ฒ์ ์์ฒญํ ๋ ๋ฐ์ํ๋ ์ด๋ฒค์ธ ์ฒ๋ฆฌํ๊ธฐ
- connection : ์ฐ๊ฒฐ์ด ๋ง๋ค์ด์ง๋ ์ด๋ฒคํธ
- request : ์์ฒญํ ๋
- close : ์๋ฒ ์ข ๋ฃํ ๋
์๋ฒ์์ ๋ค๋ฅธ ์น ์ฌ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์๋ตํ๊ธฐ
http ๋ชจ๋์ ์ฌ์ฉํด get๋ฐฉ์์ผ๋ก ๋ค๋ฅธ ์ฌ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ์ฝ๋
var http = require("http");
var options = {
host: "www.google.com",
port: 80,
path: "/",
};
var req = http.get(options, function (res) {
//์๋ต์ฒ๋ฆฌ
var resData = "";
res.on("data", function (chunk) {
resData += chunk;
});
res.on("end", function () {
console.log(resData);
});
});
req.on("error", function (err) {
console.log("์ค๋ฅ ๋ฐ์: " + err.message);
});
- http ๊ฐ์ฒด์ get() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ์ฌ์ดํธ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ์ ์ฒ๋ฆฌํ ์ ์๋ค.
- get() ๋ฉ์๋์ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ ๋ค๋ฅธ ์ฌ์ดํธ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๊ฐ์ฒด
- ๋๋ฒ์งธ : ์ฝ๋ฐฑ ํจ์ . ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋๋ data, end ์ด๋ฒคํธ
POST ๋ฐฉ์์ผ๋ก ์์ฒญํ ๊ฒฝ์ฐ request() ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ์์ฒญ ํค๋์ ๋ณธ๋ฌธ์ ๋ชจ๋ ์ง์ ์ค์ ํด์ผ ํฉ๋๋ค.
var http = require("http");
var options = {
host: "www.google.com",
port: 80,
method: "POST",
path: "/",
headers: {},
};
var req = http.get(options, function (res) {
//์๋ต์ฒ๋ฆฌ
var resData = "";
res.on("data", function (chunk) {
resData += chunk;
});
res.on("end", function () {
console.log(resData);
});
});
req.on("error", function (err) {
console.log("์ค๋ฅ ๋ฐ์: " + err.message);
});
options.headers["Content-Type"] = "application/x-www-form-urlencoded";
req.data = "q=actor";
options.headers["Content-Length"] = req.data.length;
//์์ฒญ ์ ์ก
req.write(req.data);
req.end();
์ ๋ฆฌ
- ์๋ฒ๋ง๋๋ ๊ฑฐ๋ http๋ชจ๋์ ์ด์ฉํด์ ์๋ฒ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ค. ๊ฐ์ ธ์จ๋ค๋ ๊ฒ require (import)๊ฐ๋
- ๊ฐ์ ธ์ค๋๋ฐ ์ด๋ฒคํธ (request)์์ฒญํด์ ์ฝ๋ฐฑ ํจ์ ์์ฑํ๋ค.
- ๋ค๋ฅธ ์น์๋ฒํ๊ณ ๋ get, post ๋ฐฉ์์ ์ฌ์ฉํด์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์จ๋ค.
728x90
๋ฐ์ํ