서버/Express

ExpressJS method-override

realtrynna 2022. 3. 22. 13:55

ExpressJS method-override

 form 태그에 put/delete method 사용 가능

- html form tag는 기본적으로 get/post 2가지 method만 지원

- node에서 제공하는 method-override 패키지로 사용

 

PUT을 form 메소드로 사용한다는 것은 말도 안 된다. 네가 form payload를 통해 PUT을 해야할 일은 없을 것이다. DELETE도 payload가 없어야만 말이 된다. 그러니 역시 form에서 제공할 이유가 없다.

 

package / module require

- package
npm i method-override

- module require(app.js)
const methodOverride = require("method-override");

- router middleware 뒤에 작성
app.use(methodOverride("_method"));

 

FRONT

- form action 속성 url에 마지막 부분에 ?_method=DELETE 추가

- method 속성은 POST

- put 사용 시 ?_method=PUT

- form tag
<form action="/?_method=DELETE" method="post">
    <input name="id" type="hidden" value="test">
    <button type="submit" class="delete">DELETE</button>
</form>

 

BACK

- method(delete) url("/")

- 전송 데이터는 req.body에 담김

router.delete("/", async (req, res, next) => {
  console.log(req.body); // { id: test }
  res.end();
});

 

'서버 > Express' 카테고리의 다른 글

ExpressJS CORS(Cross-Origin-Resource-Sharing)  (0) 2022.03.28
ExpressJS JWT  (0) 2022.03.26
ExpressJS middleware  (0) 2022.01.22
ExpressJS nunjucks  (0) 2022.01.20
ExpressJS req res  (0) 2022.01.20