BackEnd/Express 4

[Express] req, res 객체

익스프레스의 req, res 객체는 http 모듈의 req, res 객체를 확장한 것입니다. 기존 http 모듈의 메서드를 사용할 수 있고, 익스프레스가 추가한 메서드나 속성을 사용할 수도 있습니다. 예를 들어 res.writeHead, res.write, res.end 메서드를 그대로 사용할 수 있으면서 res.send나 res.sendFile 같은 메서드도 쓸 수 있습니다. 다만, 익스프레스의 메서드가 워낙 편리하므로 기존 http 모듈의 메서드는 잘 쓰이지 않습니다. req req.app: req 객체를 통해 app 객체에 접근할 수 있습니다. req.app.get('port')와 같은 식으로 사용할 수 있습니다. req.body: body-parser 미들웨어가 만드는 요청의 본문을 해석한 객체입..

BackEnd/Express 2023.04.19

[Express] Error Handling

다른 미들웨어 함수와 동일한 방법으로 오류 처리 미들웨어 함수를 정의할 수 있지만, 오류 처리 함수는 3개가 아닌 4개의 인수 (err, req, res, next)를 갖습니다. app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Something broke!'); }); 오류 처리 미들웨어는 다른 app.use() 및 라우트 호출을 정의한 후에 마지막으로 정의해야 합니다. const bodyParser = require('body-parser') const methodOverride = require('method-override') app.use(bodyParser()) app.use(methodOverr..

BackEnd/Express 2023.04.19

[Express] middleware

미들웨어 함수는 요청 오브젝트(req), 응답 오브젝트(res), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수에 대한 액세스 권한을 갖는 함수입니다. 그 다음의 미들웨어 함수에 액세스하기 위해서 next()를 사용합니다. 라우터, 컨트롤러, 미들웨어 라우터: 엔드포인트와 해당 엔드포인트에서 실행돼야 할 로직(함수)를 연결해주는 역할 컨트롤러: 미들웨어의 일종이지만 메인 로직을 담당 미들웨어 : 메인 로직(미들웨어)의 컨트롤러 앞 뒤로 추가적인 로직 담당 이런 식으로 역할과 책임을 나누어서 관리해주면 코드 가독성이 쉬워지고 유지보수에 좋습니다. 각 코드 예시는 아래와 같습니다. // 라우터 app.get('/users/:uid/letters/', authentication, autho..

BackEnd/Express 2023.04.19

[Express] 라우팅

라우트 메소드 라우트 메소드는 HTTP 메소드 중 하나로부터 파생되며, express 클래스의 인스턴스에 연결됩니다. 다음 코드는 앱의 루트에 대한 GET 및 POST 메소드에 대해 정의된 라우트의 예입니다. // GET method route app.get('/', function (req, res) { res.send('GET request to the homepage'); }); // POST method route app.post('/', function (req, res) { res.send('POST request to the homepage'); }); Express는 HTTP 메소드에 해당하는 다음과 같은 라우팅 메소드를 지원합니다. (get, post, put, head, delete, ..

BackEnd/Express 2023.04.19