๐ Study/JS, JQuery
์ต์คํ๋ ์ค๋ก ์น ์๋ฒ ๋ง๋ค๊ธฐ
kkh1902
2022. 5. 14. 15:35
728x90
๋ฐ์ํ
- ์๋ก
http๋ชจ๋๋ง ์ฌ์ฉํด์ ์น ์๋ฒ๋ฅผ ๊ตฌ์ฑํ ๋๋ ๋ง์ ๊ฒ๋ค์ ์ง์ ๋ง๋ค์ด์ผ ํ๋ค.
express ๋ชจ๋์ ์ฌ์ฉํด์ ๋ฏธ๋ค์จ์ด, ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๊ฒ ๊ตฌ์ฑํ ์ ์๋ค.
express ์๋ฒ๋ง๋ค๊ธฐ
$ npm init ํด์ package.json ํ์ผ์ ๋ง๋ ๋ค.
- express, http ๋ชจ๋์ ./ ๊ธฐํธ ์์ด ๋ชจ๋ ์ด๋ฆ๋ง ์ฌ์ฉํ๋ค.
- ์ด๊ฒ์ ๋ ธ๋์ ๋ด์ฅ๋ ๋ชจ๋ ๋๋ npm์ผ๋ก ์ค์นํ ์ธ์ฅ ๋ชจ๋์ผ ๋ ์๋ ํจ์ค๊ฐ ์๋ ์ด๋ฆ๋ง ์ง์ ํ๋๋ก ์ค์ ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
// Express ๊ธฐ๋ณธ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ
var express = require("express");
http = require("http");
// ์ต์คํ๋ ์ค ๊ฐ์ฒด ์์ฑ
var app = express();
// ๊ธฐ๋ณธ ํฌํธ๋ฅผ app ๊ฐ์ฒด์ ์์ฑ์ผ๋ก ์ค์
app.set("port", process.env.PORT || 3000);
// Express ์๋ฒ ์์
http.createServer(app).listen(app.get("port"), function () {
console.log("์ต์คํ๋ ์ค ์๋ฒ๋ฅผ ์์ํ์ต๋๋ค : " + app.get("port"));
});
์ต์คํ๋ ์ค ์๋ฒ ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฃผ์ ๋ฉ์๋
- set(name, value) : ์๋ฒ ์ค์ ์ ์ํ ์์ฑ์ ์ง์ ํฉ๋๋ค. set() ๋ฉ์๋๋ก ์ง์ ํ ์์ฑ์ get() ๋ฉ์๋๋ก ๊บผ๋ด์ด ํ์ธํ ์ ์์ต๋๋ค.
- get(name) : ์๋ฒ ์ค์ ์ ์ํด ์ง์ ํ ์์ฑ์ ๊บผ๋ด ์ต๋๋ค.
- use( [path,] function[, function...]) : ๋ฏธ๋ค์จ์ด ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- get( [path,] function) : ํน์ ํจ์ค๋ก ์์ฒญ๋ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
์๋ฒ ์ค์ ์ ์ ํด ๋ฏธ๋ฆฌ ์ ํด์ง ์ฃผ์ ์์ฑ
- env : ์๋ฒ ๋ชจ๋๋ฅผ ์ค์ ํฉ๋๋ค.
- views : ๋ทฐ๋ค์ด ๋ค์ด ์๋ ํด๋ ๋๋ ํด๋ ๋ฐฐ์ด์ ์ค์ ํฉ๋๋ค.
- view engine : ๋ํดํธ๋ก ์ฌ์ฉํ ๋ทฐ ์์ง์ ์ค์ ํฉ๋๋ค.
๋ฏธ๋ค์จ์ด๋ก ํด๋ผ์ด์ธํธ์ ์๋ต๋ณด๋ด๊ธฐ
// Express ๊ธฐ๋ณธ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ
var express = require("express");
http = require("http");
// ์ต์คํ๋ ์ค ๊ฐ์ฒด ์์ฑ
var app = express();
app.use(function (req, res, next) {
console.log("์ฒซ ๋ฒ์งธ ๋ฏธ๋ค์จ์ด์์ ์์ฒญ์ ์ฒ๋ฆฌํจ");
req.user = "nike";
next();
// res.writeHead("200", { "Content-Type": "text/html;charset=utf8" });
// res.end("<h1> Express ์๋ฒ์์ ์๋ตํ ๊ฒฐ๊ณผ์
๋๋ค.");
});
app.use("/", function (req, res, next) {
console.log("๋ ๋ฒ์งธ ๋ฏธ๋ค์จ์ด์์ ์์ฒญ์ ์ฒ๋ฆฌํจ.");
res.writeHead("200", { "Content-Type": "text/html;charset=utf8" });
res.end("<h1>Express ์๋ฒ์์ " + req.user + "๊ฐ ์๋ตํ ๊ฒฐ๊ณผ์
๋๋ค.</h1>");
});
http.createServer(app).listen(3000, function () {
console.log("Express ์๋ฒ๊ฐ 3000๋ฒ ํฌํธ์์ ์์๋จ");
});
์ฌ๋ฌ ๊ฐ์ ๋ฏธ๋ค์จ์ด๋ฅผ ๋ฑ๋กํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- next() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๋ค์ ๋ฏธ๋ค์จ์ด๋ก ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ๋๊ฒจ์ฃผ์ด์ผํ๋ค.
// Express ๊ธฐ๋ณธ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ
var express = require("express");
http = require("http");
// ์ต์คํ๋ ์ค ๊ฐ์ฒด ์์ฑ
var app = express();
app.use(function (req, res, next) {
console.log("์ฒซ ๋ฒ์งธ ๋ฏธ๋ค์จ์ด์์ ์์ฒญ์ ์ฒ๋ฆฌํจ");
var userAgent = req.header("User-Agent");
var paramName = req.query.name;
res.writeHead("200", { "Content-Type": "text/html;charset=utf8" });
res.write("<h1> Express ์๋ฒ์์ ์๋ตํ ๊ฒฐ๊ณผ์
๋๋ค.</h1>");
res.write("<div><p>User-Agent :" + userAgent + "</p></div>");
res.write("<div><p>Param name :" + paramName + "</p></div>");
res.end();
});
http.createServer(app).listen(3000, function () {
console.log("Express ์๋ฒ๊ฐ 3000๋ฒ ํฌํธ์์ ์์๋จ");
});
์ต์คํ๋ ์ค์ ์์ฒญ๊ฐ์ฒด์ ์๋ต ๊ฐ์ฒด ์์๋ณด๊ธฐ
- send([body]) : ํด๋ผ์ด์ธํธ์ ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ๋๋ค. (html๋ฌธ์์ด, Buffer ๊ฐ์ฒด , JSON ๊ฐ์ฒด, JSON๋ฐฐ์ด)
- status(code) : HTTP ์ํ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. ์ํ์ฝ๋๋ end()๋ send() ๊ฐ์ ์ ์ก ๋ฉ์๋๋ฅผ ์ถ๊ฐ๋ก ํธ์ถํด์ผ ์ ์กํ ์ ์์ต๋๋ค.
- sendStatus(statusCode) : HTTP ์ํ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. ์ํ ์ฝ๋๋ ์ํ ๋ฉ์์ง์ ํจ๊ป ์ ์ก๋ฉ๋๋ค.
- redirect ([status,]path ) : ์น ํ์ด์ง ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ๋ก ์ด๋ ์ํต๋๋ค.
- render(view [,locals][,callback]) : ๋ทฐ ์์ง์ ์ฌ์ฉํด ๋ฌธ์๋ฅผ ๋ง๋ ํ ์ ์กํฉ๋๋ค.
์ต์คํ๋ ์ค์์ ์์ฒญ ๊ฐ์ฒด์ ์ถ๊ฐํ ํค๋์ ํ๋ผ๋ฏธํฐ ์์๋ณด๊ธฐ
- query : ํด๋ผ์ด์ธํธ์์ get ๋ฐฉ์์ผ๋ก ์ ์กํ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ธํฉ๋๋ค.
- body : ํด๋ผ์ด์ธํธ์์ post ๋ฐฉ์์ผ๋ก ์ ์กํ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ธํฉ๋๋ค.
- header(name) : ํค๋๋ฅผ ํ์ธํฉ๋๋ค.
์ ๋ฆฌ
- ์ค๋ฌด์์๋ ํ๋์ ํ์ผ์ ๋ค ์ ๋ฆฌํ๋ฉด ๊ด๋ฆฌ๋ ์ ์ง ๋ณด์ ์ด๋ ค์์ ๋ชจ๋์ ์ฌ์ฉํ๋ค. ๊ทธ๊ฒ express ๋ชจ๋ ์น ์๋ฒ
- ์ธ๋ฐ http ๋ชจ๋์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค.
- express ์์ ์ ๊ณตํ๋ ๋ฏธ๋ค ์จ์ด์ ๋ผ์ฐํฐ๋ฅผ ์ด์ฉํ๋ค . ์ค๊ฐ ๋งค๊ฐ์ฒด ๋๋์ด๋ค.
- ๋ฐ๋ก ๋ ๋ฆฝ์ฑ์ ์ ์งํ๋ ๊ฒ์ด ์ข๋ค.
728x90
๋ฐ์ํ