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 |