이 글은 Node.js로 백엔드 애플리케이션을 구축하는 핵심 부분인 Express.js를 알아야 할 필수 사항에 중점을 둡니다. 강력한 웹 애플리케이션을 구축하는 데 중요한 역할을 하는 라우팅, CRUD 작업, 응답 방법 및 미들웨어 기능에 대해 자세히 살펴보겠습니다.
Express.js에서 경로 메서드는 애플리케이션이 특정 경로에 대한 다양한 HTTP 요청(예: GET, POST, PUT, DELETE)에 응답하는 방법을 정의합니다. 이러한 메서드는 애플리케이션에서 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 구현하는 데 사용됩니다.
기본 CRUD 예: 이 예에서 각 경로는 사용된 HTTP 메서드를 기반으로 서로 다른 CRUD 작업에 응답합니다.
const express = require('express'); const app = express(); // Create - POST app.post('/users', (req, res) => { res.send('User created'); }); // Read - GET app.get('/users', (req, res) => { res.send('Here is the user'); }); // Update - PUT app.put('/users/:id', (req, res) => { res.send('User with ID ${req.params.id} updated'); }); // Delete - DELETE app.delete('/users//:id', (req, res) => { res.send('User with ID ${req.params.id} deleted'); }): app.listen(3000, () => console.log('Server running on port 3000') );
라우팅 매개변수를 사용하면 요청 URL의 특정 부분을 캡처하여 경로 핸들러 내에서 사용할 수 있습니다. 예를 들어, URL에서 ID를 추출하고 이를 사용하여 해당 ID와 관련된 작업을 수행할 수 있습니다.
예) 이 예에서 :id는 동적 매개변수로 추출되어 응답에 사용됩니다. 이 동적 매개변수가 123인 경우 /users/123에 대한 요청은 "ID가 123인 사용자를 가져오는 중"을 반환합니다.
app.get('/users/:id', (req, res) => { const userId = req.params.id; res.send(`Fetching user with ID: ${userId}`); });
경로 핸들러는 서버가 HTTP 요청을 처리하는 방법을 정의합니다. 단일 경로 내에서 여러 미들웨어 기능을 정의하여 더욱 깔끔하고 모듈화된 코드를 만들 수 있습니다.
다중 핸들러가 있는 예: 이 예에서 첫 번째 미들웨어는 메시지를 기록하고 두 번째 미들웨어는 응답을 보냅니다.
app.get('/users', (req, res, next) => { console.log('First middleware'); next(); // call the next handler in the stack }, (req, res) => { res.send('User list'); });
Express.js는 클라이언트에 응답을 보내는 여러 가지 방법을 제공합니다. 일반적으로 사용되는 응답 방법을 살펴보겠습니다.
a) .json()이 JSON 응답을 보냅니다.
app.get('/data', (req, res) => { res.json({ message: 'Hello, JSON' }); });
b) .send()는 다양한 유형(텍스트, HTML, 버퍼 등)의 응답을 보냅니다.
app.get('/text', (req, res) => { res.send('Sending text'); });
c) .download()는 파일을 첨부 파일로 보내 사용자에게 다운로드하라는 메시지를 표시합니다.
app.get('/download', (re
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3