1. HTTP Methods(HTTP-Verbs) - GET, POST, PUT, PATCH, DELETE
HTTP Methods ( = HTTP Verbs)의 종류 : GET, POST, PUT, PATCH, DELETE
참고) resource 의 종류 : html, binary(image, sound), db (db, json, xml, flat)
GET : 조회
POST : 등록
PUT : 수정(없을시 등록). 한 컬럼만 업데이트시에도 모든 컬럼 업데이트.
PATCH : 수정. 한 컬럼만 업데이트시 한 컬럼만 업데이트.
DELETE : 삭제
2. Express로 서버 실행하기 (GIT : https://github.com/a-mean-blogger/hello-world/tree/eaa13c5356ebaa06bd14df80bee96edb085fac46)
$ git clone https://github.com/a-mean-blogger/hello-world.git
$ cd hello-world
$ git reset --hard eaa13c5
$ npm install
$ atom .
위 git clone 없이 직접 해보기
$ git init
$ npm init
$ touch index.js
$ npm install --save express
$ atom . ( 혹은 vi index.js )
index.js 에 아래 내용 입력
-----------------------------------------
var express = require('express')
var app = express();
app.get('/', function (req, res) // '/' 로 get 요청시
{
res.send('Hello World!');
})
app.listen(3000, function()
{
console.log('Server On!');
})
-----------------------------------------
$ node index.js
Server On!
그리고, Chrome> localhost:3000 으로 접속하면, Hello World! 가 보인다.
3. Static 폴더 추가하기
index.js 를 아래내용으로 변경
// index.js
var express = require('express');
var app = express();
// __dirname = 현재 실행 위치
// app.use : 브라우저에서, / 으로 접속하면 /public/ 에 변경접속, /css 으로 접속하면 /public/css 으로 변경접속
// css 나 html 같은 고정 파일 위치에 사용한다. 아래 "4. EJS로 Dynamic Website" 에서 <link> 태그에 public 이 없어도 public 을 참조하게 된다.
app.use(express.static(__dirname + '/public'));
app.listen(3000, function(){
console.log('Server On!');
});
$ node index.js #재실행
Server On!
그리고, Chrome> localhost:3000 으로 접속하면, 주황색 Hello World! 가 보인다.
4. EJS로 Dynamic Website 만들기
* 용어.EJS) EJS는 Embedded Javascript의 약자로 Express에서 dynamic website를 만들기 위해 template으로 사용되는 파일(확장자 이름은 .ejs)입니다.
$ npm install --save ejs # ejs 설치
> views 폴더와 views/hello.ejs 파일 추가
> index.js 내용 변경 -----------------------------------------
// index.js
var express = require('express');
var app = express();
app.set("view engine","ejs"); // ejs를 사용하기 위해서 express의 view engine에 ejs를 set하는 코드입니다.
// 이 라인을 없으면, 앞 views 옵션은 기본으로 views 폴더(뒤)를 가르키지면, 명시적으로 적어주자.
// 뒤의 views 는 사용자 마음대로 바꿀 수 있다.
// views 는 res.render 에서 사용된다.
app.set("views", "views");
app.use(express.static(__dirname + '/public'));
// 2
app.get("/hello", function(req,res){ // http://localhost:3030/hello 호출시
res.render("hello", {name:req.query.nameQuery}); // render 에는 hello.ejs의 파일명부분과 파라미터를 넘겨준다.
});
// 3
app.get("/hello/:nameParam", function(req,res){ // http://localhost:3030/hello/이름 호출시
res.render("hello", {name:req.params.nameParam}); // render 에는 hello.ejs의 파일명부분과 파라미터를 넘겨준다.
});
app.listen(3000, function(){
console.log('Server On!');
});
> views/hello.ejs 에는 아래 내용 추가
2
<!-- views/hello.ejs -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello World!</title>
<link rel="stylesheet" href="/css/master.css">
</head>
<body>
<h1>Hello
<% if(name){ %>
<span class="name"><%= name %>!</span>
<% } else { %>
<span class="stranger">Stranger!</span>
<% } %>
</h1>
</body>
</html>
> http://localhost:3000/hello 와 localhost:3000/hello/superman 으로 접속테스트 해보자.
[참조] https://www.a-mean-blog.com/ko/blog/Node-JS-%EC%B2%AB%EA%B1%B8%EC%9D%8C/Hello-World/HTTP-Methods-HTTP-Verbs-GET-POST-PUT-PATCH-DELETE