app.get("/",(req,res)=>{
const agent2 = res.header("user-Agent")
const host2= res.header("host")
res.send(`user-agent2값: ${agent2} <br> 호스트 ${host2}`);
});
app.get("/set/:key/:value", (req,res)=>{
const key = req.params.key;
const value = req.params.value;
res.set(key,value);
res.send(`<h3>key=${key} value=${value}</h3>`)
})
2. mime
마임 타입이란 :
MIME 타입이란 클라이언트에게 전송된 문서의 다양성을 알려주기
위한 메커니즘.
웹에서 파일의 확장자는 별 의미가 없다. 그러므로, 각 문서와 함께 올바른 MIME 타입을
전송하도록, 서버가 정확히 설정하는 것이 중요하다.
브라우저들은 리소스를 내려받았을 때 해야 할 기본 동작이 무엇인지를 결정하기 위해
MIME 타입을 사용.
데이터의 타입을 말한다고 보면 된다.
app.get("/image", (req,res)=>{
fs.readFile("public/고양이.jpg" ,(err,image)=>{
res.type("image/jpg");
res.send(image);
});
});
app.get("/audio", (req,res)=>{
fs.readFile("public/mp3_sample.mp3" ,(err,audio)=>{
res.type("audio/mp3");
res.send(audio);
});
});
app.get("/video", (req,res)=>{
fs.readFile("public/mp4_sample.mp4" ,(err,video)=>{
res.type("video/mp4");
res.send(video);
});
});
3. static
스택틱폴더경로설정 :
html에서 경로를 지정할 때 스택틱경로부터 시작할 수 있다. (js파일은 무관)
스택틱경로 선언하기 :
const express = require("express");
const app = express();
app.use(express.static(__dirname + "/public"));
__dirname으로 js파일의 경로를 잡아주고 그 바로 아래있는 퍼블릭을 스택틱
으로 잡았다.
이제 html파일에서 쓰는 경로는 퍼블릭다음 / 부터 적으면 된다.
예제)
const express = require("express");
const app = express();
const fs = require("fs");
const ejs=require("ejs");
app.use(express.static(__dirname + "/public"));
app.get("/",(req,res)=>{
res.send(`<h1>static</h1>`);
});
app.get("/static", (req,res)=>{
fs.readFile("views/05.static.html", "utf8" ,(err,html)=>{
res.send(html);
});
});
app.get("/ejs",(req,res)=>{
ejs.renderFile("./views/05.static.ejs", {data:"EJS에서 보내는 데이터"}, (err,html)=>{
res.send(html);
});
});
app.get("*", (req,res)=>{
res.status(404).send("path not found");
});
app.listen(3000, (req,res)=>{
console.log("server is running at http://127.0.0.1:3000");
});
4. bodyParser
get으로 넘긴 정보를 post에서 req.body. 로 받는다
(주소창에서 /~ 는 params. 로 주소창에서 ?~ 는 query. 로)
바디파서 사용하는 방법 :
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({extended: false}));
이제 req.body.uid 처럼 바디파서를 사용할 수 있다.
예제)
const express = require("express");
const app = express();
const fs = require("fs");
const path = require("path");
app.use(express.static(__dirname + "/public"));
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({extended: false}));
app.get("/",(req,res)=>{
res.send(`<h1>body-parser middleware</h1>`);
});
app.get("/login", (req,res)=>{
fs.readFile("views/06.login.html", "utf8" ,(err,html)=>{
res.send(html);
});
});
app.post("/login", (req,res)=>{
const uid =req.body.uid;
const pwd = req.body.pwd;
res.send(`<h1>사용자id: ${uid} 패스워드: ${pwd}</h1>`);
});
app.get("*", (req,res)=>{
res.status(404).send("path not found");
});
app.listen(3000, (req,res)=>{
console.log("server is running at http://127.0.0.1:3000");
});