ํฐ์คํ ๋ฆฌ ๋ทฐ
์ด๋ฒ์ ํ ํ๋ฆฟ ์์ง์ด๋ผ๋ ๊ฑธ ์๊ฐํ๋๋ฐ ์ฌ์ฉํ๋ ์์ง์ pug(ํ) jade(๊ณผ๊ฑฐ) ๋ผ ๋ถ๋ ธ๋ ํ ํ๋ฆฟ ์์ง ์ค์ ํ๋์ด๋ค. ํ ์์ ์์ ๋ค์ด๋ฐ์ผ๋ ค๋ฉด pug๋ฅผ ์จ์ผํ๋ค. ์ผ๋จ ๋ ๊ทธ๋ ๋ฏ์ด npm install์ ํด์ผํ๋ค.
$ npm install pug --save
๋ค์ --save์ ๊ฐ์ ์ต์
๋ถ๋ถ์ ์ ํ์ฌํญ์ด์ง๋ง ์ผ๋จ ๋ชจ๋ฅด๋ฉด --save๋ฅผ ๊ธฐ๋ณธ ์ต์
์ผ๋ก ๋๊ณ ์ฌ์ฉํด๋ ๋ฌด๊ดํ๋ค. ์๋ง ํ์ฌ init ํ๊ณ ์๋ ๋๋ ํ ๋ฆฌ์ ํํด์๋ง npm์ installํ๋ ๊ฒ ๊ฐ๋ค. ์ฆ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ์์๋ ๊ทธ ๋ชจ๋์ ๋ค์ ์ค์นํ์ง ์๋ ์ด์ ์ฌ์ฉ ๋ชปํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๋ฌผ๋ก -g๋ผ๊ณ ํด์ ์ ์ญ์ผ๋ก ์ค์นํ๋ ์ต์
๋ ์๋๋ฐ npm์ ํฌ์คํ
ํ๋๊ฑด ์๋๋ ์ผ๋จ ์ฌ๊ธฐ๊น์ง..
์ผ๋จ ์นํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก html ์ฝ๋๊ฐ ํ์ํ๋ค. html์ธ์ด๋ ์ฐ๋ฆฌ๊ฐ ํํ ์๋ฏ์ด <html> ํ๊ทธ๊ฐ ์์ผ๋ฉด </html> ์ ๊ฐ์ด ๋ฐ๋์ ๋ซ๋ ํ๊ทธ๊ฐ ์กด์ฌํ๋ค. (๋ฌผ๋ก ์๋์์ฑ์ผ๋ก ํด์ฃผ๊ธด ํ์ง๋ง..)
pug์ ๊ฐ์ ํ ํ๋ฆฟ ์์ง์ด ์ด๋ฌํ ๋ฒ๊ฑฐ๋ก์์ ์ค์ฌ์ค๋ค. ๋ซ๋ ํ๊ทธ๋ค๋ง ์ฌ๋ผ์ ธ๋ ์ผ๋จ ์ฝ๋๊ธธ์ด๊ฐ ์งง์์ง๋ ๊ฒ๋ ์๊ณ , html ํ์ผ์ด ์ผ๋จ ๋ถ๋ฆฌ๊ฐ ๋๋ ๊ทธ๊ฒ ๋ํ ๊ฐ์ ์ด๋ค.
์ด์ ํฌ์คํ ์์ ๋์ , ์ ์ ํ์ผ ์๋น์ค์ ๊ดํ์ฌ ๊ธ์ ์ผ์๋๋ฐ ๋ ๋ค ์ฅ๋จ์ ์ด ์์๋๋ฐ ํ ํ๋ฆฟ ์์ง์ ์ฌ์ฉํจ์ผ๋ก์จ ๊ฐ๊ฐ์ ์ฅ์ ๋ง ์ทจํ ์ ์๊ฒ ๋๋ค.
๋ ๊ฐ์ง ํํ์ pug ํ์ผ์ ์ดํด๋ณด๊ฒ ๋ค.
1) ์์ html ์ฝ๋๋ง ์๋ ํํ
1 2 3 4 5 6 7 8 9 10 11 | html head meta(charset='utf-8') body form(action='/form_receiver' method='post') p input(type="text" name="title") p textarea(name='description') p input(type="submit" value="์ ์ก") |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <form action="/form_receiver" method="post"> <p> <input type="text" name="title"> </p> <p> <textarea name="description"></textarea> </p> <p> <input type="submit" value="์ ์ก"> </p> </form> </body> </html> | cs |
1 2 3 4 5 6 7 8 9 | html head title=title body Written by JooHyeong Lee ul -for(var i = 0; i<5; i++) li coding div=time | cs |
๋ณด๋ฉด ๋ฐ๋ณต๋ฌธ๊ณผ ์์คํ ์๊ฐ์ ๋ํ๋ด๋ time์ ์ฌ์ฉํ ๊ฒ์ ๋ณผ ์ ์๋ค. ๋จ ์์ - ๋ฅผ ๋ถ์ด์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋๋ ์ฃผ์. ํด๋น ์์ค๋ฅผ ์คํ์ํค๋ฉด html ์์ค๋ ๋ค์๊ณผ ๊ฐ๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <html> <head> <title>Pug</title> </head> <body> <Written>by JooHyeong Lee </Written> <ul> <li>coding</li> <li>coding</li> <li>coding</li> <li>coding</li> <li>coding</li> </ul> <div>Thu Apr 12 2018 23:26:41 GMT+0900 (JST)</div> </body> </html> | cs |
์ง๊ธ๊น์ง ์ญ pug ํ์ผ๋ง ์ค๋ช ์ ํด์คฌ์ผ๋ ๊ฒฐ๊ตญ์ ์ด๊ฑธ node js์์ ์ฌ์ฉํด์ผํ๋ฏ๋ก ๋ช๊ฐ์ง ์ ์ธ์ด ํ์ํ๋ค.
1 2 | app.set('view engine','pug'); app.set('views','./views'); |
1 2 3 | app.get('/form',function(req,res) { res.render('form'); }); | cs |
localhost:3000/form ์ ๊ฒฝ๋ก๋ก ๋ผ์ฐํฐ๋ฅผ ์ค์ ํด์ค ๊ฒ์ธ๋ฐ ๊ธฐ์กด์ send์๋ ๋ฌ๋ฆฌ ์ฌ๊ธฐ์ render๋ผ๋ ๋ฉ์๋๋ฅผ ์์ฑํ์ฌ ๋งค๊ฐ๋ณ์๋ก pugํ์ผ๋ช ์ ๋ฃ๋๋ค. ์ฆ views ๋๋ ํ ๋ฆฌ ์์ ์๋ form.pug ํ์ผ์ ์คํ์ํค๋ ๊ฒ์ด๋ค.
๋๋ฒ์งธ pug๋ฅผ ์คํ์ํค๊ธฐ ์ํ ๋ผ์ฐํฐ.
1 2 3 | app.get('/temp',function(req,res){ res.render('temp',{time:Date(),title:"Pug"}); }); | cs |
localhost:3000/temp ์ ๊ฒฝ๋ก๋ก ์ ์ํ๋ฉด ๋๋๋ฐ ์๊น์ ๋ค๋ฅด๊ฒ ๋ค์ ๋์ค๋ ๋งค๊ฐ๋ณ์๊ฐ ๋์๋ ๊ฒ์ ๋ณผ ์ ์๋ค
์ด๋ pug์์ ์์ฑํ javascript ์ฝ๋์์ ํ์ํ ๊ฐ๋ค์ ์ฌ๊ธฐ์ ๋๊ฒจ์ฃผ๋ ๊ฒ์ด๋ฏ๋ก
title=title
div=time
์ด ๋ ๋ถ๋ถ์ ๊ฐ์ ํ์๋ก ํ๋ ๊ฒ์ด๋ค. ์์ ์๊ด์์ด { } ์์ ํ์๋ก ํ๋ ๊ฐ์๋งํผ ์์ฑํด์ฃผ๋ฉด ๋๋ค.
'Node.js > Node.js ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
7. ํ์ผ ์ ๋ก๋ (multer ๋ชจ๋ ์ด์ฉ) (0) | 2018.05.26 |
---|---|
6. express ์ฟผ๋ฆฌ์คํธ๋ง ์ฌ์ฉ (0) | 2018.04.25 |
express(3) - ๋์ ํ์ผ์๋น์ค (0) | 2018.04.06 |
express(2) - ์ ์ ํ์ผ์๋น์ค (0) | 2018.04.02 |
4. express (1) (0) | 2018.03.26 |
- Total
- Today
- Yesterday
- Spring Async
- ๋น๋๊ธฐ ์์ฒญ
- backend-framework
- DeferredResult
- node.js backend
- android
- node.js
- nestjs config
- ์๊ณ ๋ฆฌ์ฆ
- Spring
- Request_Limit_Exceeded
- ๊ธฐ์์ฒญAPI
- @nestjs/config
- nestjs project
- JavaScript
- sequelize
- nestjs module
- ํ๋ก๊ทธ๋๋จธ์ค
- Promise error
- Promise bulk
- nestjs typeorm
- typeorm
- NestJS
- nestjs doc
- typeorm ์ฐ๊ฒฐ
- docker mysql
- nestjs/cli
- nestjs directory
- foreignkey
- nestjs configService
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |