members = [{name: "test"}, ...]
router.get('/', (req, res) => {
res.render('index', {members})
})
<% members.map(member => { %>
<div>
<p> <%= member.name %> </p>
</div>
<% }).join("") %>
CSS 파일 link 시키기
ejs는 동적 페이지여서 그냥 디렉토리로 link하면 안된다 app.js 에서 정적 리소스를 명시하고 public 기준으로 css파일을 가져오면 된다
app.use(express.static(__dirname + '/public'))
<link rel="stylesheet" type="text/css" href="/index.css">
GET, POST
방법 1. 일반적으로 body를 통해 데이터 전달하기
<form action="/add" method="POST">
<input name="name" type="text">
<input name="phone" type="text">
<input type="submit" value="submit">
</form>
router.post('/add', async (req, res) => {
const newMembers = {
name: req.body.name
phone: req.body.phone
}
await dbMembers.add(newMembers)
res.redirect('/')
})
방법 2. query로 데이터 전달하기
<form action="/delete?id=<%= member.id%>" method="POST">
<button type="submit"> 삭제 </button>
</form>
router.post('/delete', async (req, res) => {
await dbMembers.doc(req.query.id).delete()
res.redirect('/')
})
방법 3. js에서 axios로 요청하기
⭐ post에서 body를 파싱하려면 body-parser 가 필요하다.. yarn add 하자..
express-generator 사용했으면 cookie-parser 있는데 무난히 될듯?