<style type="text/css"> p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.Apple SD Gothic NeoI'; color: #454545} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545; min-height: 14.0px} span.s1 {font: 12.0px 'Helvetica Neue'} span.s2 {font: 12.0px '.Apple SD Gothic NeoI'} </style>
안녕하세요. nodejs/express 로 프로젝트를 하고있는 신입 개발자입니다.
<style type="text/css"> p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.Apple SD Gothic NeoI'; color: #454545} span.s1 {font: 12.0px 'Helvetica Neue'} </style>
이런걸 여쭤봐도 되나 싶기는 하지만, 어떤식으로 하는게 맞는지 확신이 서지 않고 주변에 물어볼만한 분이 계시질 않아서 몇가지 조언 부탁드리고자 글 올려봅니다
1. 라우트 설정 할 때 어떤식으로 설정 하는게 옳은건지 모르겠습니다.
1.1 지금까지 같은경우는
router.get('/select', function(req,res,next){ /..코드../ }
이런식으로 바로 함수를 작성하여 넣는식으로 개발을 해왔습니다.
그러다 이게 조금 지저분하다는 생각이 들어서
1.2 /// router.js
const test = require('/controller/test ');
router.get('/select',test.select);
/// test.js
test.select = function(req,res,next){....}
이런식으로 하면 조금 더 깔끔해보이는것 같아 수정을 하려던중, 안에 들어갈 내용을 따로 뺀다 하더라도 해당 코드는 웬만해서는
한 라우터에서 밖에 사용하지 않을텐데, 이러면 괜히 디렉토리나 파일 양 만 많아지는것 아닌가 하는 의구심이 들었습니다.
또 제가 생각하지 못한 메모리 등 의 문제가 생길 수 도 있지 않을까 걱정되었구요.
2. 모델과 컨트롤러를 분리하려고 하는데, 전부 분리시켜야 하는게 맞는지, 중복으로 사용되는 부분만 분리시키는게 좋을지 모르겠습니다.
초기 개발 했을때는 router.get ..... { //// router.js
let query = " select * from test where status = ? "
let user = await connect(query,[req.body.stat]); // 디비 조회입니다.
user.map((v)=>{~~데이터처리});
res.send(user);
}
이런식으로 한곳에서 모두 처리하였다가 현재는 여러곳에서 중복적으로 사용하는 쿼리만 따로 빼
//// dao.js
dao.select = function(data){
let query = " select ~~ ";
return connect(query,data);
}
//// router.js
const dao = require('/dao');
router.get .... {
...
let user = dao.select(data);
user.map((v)=>{..데이터처리..});
...
res.send(user);
}
이런식으로 사용하고 있습니다.
전부 이렇게 처리 해야될지 중복적으로 사용되거나, 추후 중복으로 사용될만한 부분만 이렇게 처리 해야될지 모르겠습니다.
진짜 딱 한 번 밖에 사용 할 만한 부분도 따로 빼는게 나을까요?
아니면 특수한 경우에만 사용되는 코드들은 그냥 컨트롤러에서 한번에 처리하는게 나을까요?
선배님들의 조언 부탁드립니다
유명한 오픈소스 참고하셈