2015-01-03 3 views
3

나는 nodejs에 익숙하지 않으며 서버 쪽과 클라이언트 쪽 html 페이지의 구별에 대해 약간 혼란 스럽다. 내 목표는 연습을위한 전자 상거래 웹 스토어를 만드는 것입니다. 내가 시도하고 싶은 스택은 NodeJS + Express + MongoDB + AngularJS이다. 지금 가지고있는 기본 구조는 다음과 같습니다.NodeJS + expressJS : 서버 쪽 대 클라이언트 쪽 html 렌더링

shoppingMall 
..bin 
..data 
..node_modules 
..public 
....images 
....javascripts 
....stylesheets 
..routes 
....index.js 
....users.js 
..views 
....index.jade 
....layout.jade 
..app.js 
..package.json 

여기 내 논리가 있습니다. views 안에있는 파일은 서버에서 렌더링되는 html 페이지입니다. public/javascripts/ 안에있는 자바 스크립트 파일은 클라이언트에서 렌더링됩니다. AngularJSlayout.jade 안에 넣어야하고 인덱스 페이지와 관련된 클라이언트 코드는 public/javascripts/index.js이어야하며 index.jade의이 파일을 포함해야합니다. 그런 다음 jade 템플릿 엔진을 사용하여 서버에서 html 페이지를 렌더링하고 클라이언트에서 더 이상의 사용자 상호 작용을 수행합니다. index.jade과 관련된 서버 측 로직은 모두 routes/index.js이어야하며이 파일 내에있는 코드는 클라이언트에 표시되지 않습니다.

1x. 내 논리가 맞습니까?

질문 2. MVC 구조로 유지하려고한다고 가정하면이 부분은 M, V, C와 일치합니까?

답변

0

Q1. 내 논리가 맞습니까?

내 경험에 따르면 논리가 잘못되었다고합니다. Angularjs를 사용할 때 서버 측 템플릿 엔진 (귀하의 경우에는 옥)이 필요하지 않기 때문에. 각도 자체는 동적 데이터를 렌더링 할 수 있습니다.

여기서 할 수있는 것은 장바구니의 모든 기능에 대한 API 엔드 포인트를 작성하고 모든보기 (프론트 엔드 및 백엔드 모두)를 각도로 작성하는 데 node 및 express를 사용하는 것입니다.

2. MVC 구조로 유지하려고한다고 가정하면이 부분은 M, V, C와 일치합니까?

각도보기에서는 지시문과 필터가 적용된 html 페이지입니다. 그래서 이것은 애플리케이션의 UI 측면을 나타냅니다. 컨트롤러는 견해의 두뇌입니다.

보기는 컨트롤러에서 표시 할 데이터를 가져옵니다. 컨트롤러는 종종 서비스 나 공장을 사용하여 API에서 데이터를 가져옵니다. 컨트롤러는 $ scope라는 객체를 사용하여 데이터를보기에 전달합니다. 각도 세계에서는이 $ scope 객체를 뷰 모델로 간주 할 수 있습니다. 뷰와 컨트롤러를 모두 붙입니다. 귀하의 예제에서 그래서

,

/public 
    /javascripts 
     /item 
      ..item.html // view 
      ..item.js // controller (might include the services for item api calls or write a seperate js file for them) 
+1

감사합니다! 그러나 AngularJS는 프론트 엔드에서 엄격하게 사용해야합니다. –

관련 문제