method-override
는 HTTP 요청 메서드를 재정의하기 위해 Express.js와 같은 웹 프레임워크와 함께 일반적으로 사용되는 Node.js 라이브러리입니다. 이를 통해 HTML 양식이나 AJAX 요청에서 표준 GET 및 POST 이외의 HTTP 메서드를 사용할 수 있습니다. 이는 GET 및 POST 메서드만 지원하는 HTML 양식을 처리할 때 특히 유용하지만 RESTful API에서 일반적인 PUT, PATCH, DELETE 등과 같은 메서드를 사용해야 합니다.
요약
npm install method-override
터미널 설치
const methodOverride = require("method-override");
app.use(methodOverride("_method"));
js파일에 method override호출
<form action="/edit?_method=PUT" method="POST" class="form-box">
form 태그 method부분은 post로 고치지말고 action에?_method=PUT으로 수정 가능
설명
설치 방법 재정의: npm 또는 Yarn을 사용하여 설치할 수 있습니다.
npm install method-override
# or
yarn add method-override
Express 애플리케이션에서 이를 요구하고 구성합니다.
const express = require('express');
const methodOverride = require('method-override');
const app = express();
// Use method-override middleware
app.use(methodOverride('_method'));
// Other middleware and route configurations
// ...
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
위 코드에서는 app.use(methodOverride('_method'))Express 애플리케이션의 미들웨어로 메소드 재정의를 설정합니다. 요청 URL에서 "_method"라는 쿼리 매개변수를 찾아 이를 사용하여 HTTP 메서드를 재정의하도록 method-override에 지시합니다.
HTML 양식에서 사용: HTML 양식에서 GET 및 POST 이외의 방법을 사용하려는 경우 "_method" 쿼리 매개변수를 통해 원하는 방법을 지정하면 됩니다. 예를 들어 다음과 같은 양식을 만들 수 있습니다.
<form action="/resource"method="POST">
<input type="hidden"name="_method"value="PUT">
<button type="submit">Update Resource</button>
</form>
이 양식에서 이름이 "_method"이고 값이 "PUT"인 숨겨진 입력 필드는 이 요청을 POST 요청 대신 PUT 요청으로 처리하도록 method-override에 지시합니다.
Express에서 요청 처리: Express 경로 핸들러에서 지정된 HTTP 메소드에 대해 일반적으로 하는 것처럼 요청을 처리할 수 있습니다. 예를 들어:
app.put('/resource', (req, res) => {
// Handle the PUT request
res.send('Updating resource');
});
app.put('/resource')PUT으로 재정의된 메서드를 사용하여 양식이 제출될 때 경로 핸들러가 호출됩니다.
Express 애플리케이션에서 메서드 재정의를 사용하는 방법에 대한 전체 예는 다음과 같습니다.
const express = require('express');
const methodOverride = require('method-override');
const app = express();
const port = 3000;
app.use(express.urlencoded({ extended: true }));
app.use(methodOverride('_method'));
app.get('/', (req, res) => {
res.send(`
<form action="/resource" method="POST">
<input type="hidden" name="_method" value="PUT">
<button type="submit">Update Resource</button>
</form>
`);
});
app.put('/resource', (req, res) => {
res.send('Resource updated');
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
이 예에서 루트 URL에 액세스하여 양식을 제출하면 요청이 메서드 재정의에 의해 PUT 요청으로 처리되고 에 대한 경로 핸들러가 트리거 됩니다app.put('/resource').
'프로그래밍 > NodeJS' 카테고리의 다른 글
bcrypt를 사용한 암호 해시화(암호화)하기 (0) | 2023.10.26 |
---|---|
node.js환경에서 mysql 연동 세팅하기 (1) | 2023.10.23 |
자바스크립트 문법을 이용한 nodejs router 연습문제 (0) | 2023.10.04 |
ejs foreach문법 쓰는법 (0) | 2023.10.02 |
node.js css파일 연동하기 (0) | 2023.09.18 |