Node.js + Express : 경로 대 컨트롤러
Node.js와 Express를 처음 접한 저는 두 가지 개념, 경로 대 컨트롤러가 겹치는 것처럼 보이는 것을 이해하려고합니다.
나는 간단하게 app.js + route / *를 수행하는 예제를 보았습니다. 필요한 다양한 요청을 라우팅하기에 충분할 것 같습니다.
그러나 나는 또한 사람들이 컨트롤러 사용에 대해 이야기하고 있으며 일부는보다 공식적인 MVC 모델 (???)을 암시합니다.
누군가가이 수수께끼를 풀도록 도와 줄 수 있고 Node.js + Express 프레임 워크에서 컨트롤러를 설정하는 좋은 예가 있다면 좋을 것입니다!
감사,
Express (및 일반적으로 Node)의 멋진 점 중 하나는 사용자에 대한 많은 의견을 강요하지 않는다는 것입니다. 단점 중 하나는 당신에 대한 의견을 강요하지 않는다는 것입니다. 따라서 귀하는 이러한 의견 (패턴)을 스스로 설정할 수 있습니다 (그리고 필수입니다!).
Express의 경우 확실히 MVC 패턴을 사용할 수 있으며, 원한다면 라우트 핸들러가 확실히 컨트롤러의 역할을 수행 할 수 있지만 그렇게 설정해야합니다. 좋은 예는 라는 Express 예제 폴더 에서 찾을 수 있습니다 mvc
. 를 보면 디렉토리의 lib/boot.js
각 파일을 요구하도록 예제를 설정 controllers
하고 컨트롤러에서 생성 된 메서드의 이름에 따라 즉시 Express 경로를 생성하는 방법을 볼 수 있습니다.
경로 폴더 또는 둘 다를 가질 수 있습니다. 예를 들어, 일부 경로 / 경로 (예 : / user / : id)를 설정하고 Get, Post, Put / Update, Delete 등에 연결 한 다음 경로 폴더에 연결합니다.
const subController = require('./../controllers/subController');
Router.use('/subs/:id);
Router
.route('subs/:id');
.get(
subController.getSub
.patch(
subController.updateSub
);
그런 다음 컨트롤러 폴더에서 :
exports.getSub = (req, res, next) => {
req.params.id = req.users.id;
};
뭔가를 만들기 위해서. 컨트롤러 폴더없이 프로젝트를 수행했고 모든 로직을 한 곳에 배치했습니다.
참고 URL : https://stackoverflow.com/questions/11076179/node-js-express-routes-vs-controller
'developer tip' 카테고리의 다른 글
겹치는 직사각형을 간격을 두는 알고리즘? (0) | 2020.09.10 |
---|---|
Python에서 numpy.random과 random.random의 차이점 (0) | 2020.09.10 |
UITableViewCell이 완전히 보이는지 확인하는 가장 좋은 방법 (0) | 2020.09.09 |
저장되지 않은 변경 사항 감지 (0) | 2020.09.09 |
시간을 사용하지 않고 모든 고 루틴이 끝날 때까지 기다리는 방법. (0) | 2020.09.09 |