2013-08-17 7 views
5

Express 및 Angularjs가있는 Node.js가있는 응용 프로그램을 작성하려고합니다.ExpressJS 통합을 사용하는 AngularJS 및 Node.js

AngularJS가 모든 착륙 요청을 처리하도록 허용 할 수 있습니까? Node.js는 순수하게 API 용입니까? Node.js를 작성 모든 경로는 다음과 같이 될 것입니다 의미 :

app.get('/api/users', users.showAll); 
app.post('/api/users', users.create); 
app.get('/api/users/fb/:fbId', users.findByFb); 
app.get('/api/users/:userId', users.show); 
app.put('/api/users/:userId', users.update); 
app.del('/api/users/:userId', users.del); 

그리고 AngularJS와 자체 예에 의해 URL를 해결 할 수있을 것입니다 localhost/users/Some-Name?

둘을 통합 할 때 따라야 할 모범 사례는 무엇입니까?

또한 AngularJS 및 Node.js 앱을 서로 다른 두 개의 응용 프로그램으로 분리 할 것을 권장합니까? 그리고 그것을 할 수있는 방법은 무엇입니까?

미리 감사드립니다.

+0

@BoxerBucks의 대답은 꽤 있습니다. Express/Angular/Bootstrap/Grunt에 대한 초보자 프로젝트가 있습니다. https://github.com/jimschubert/eab –

답변

6

분명히, 어떤 애플리케이션의 디자인과 뉘앙스가 정확히 어떻게 설정되어야 할지를 결정할 것입니다.하지만 Angular에서 실행되는 단일 페이지 웹 애플리케이션을 사용하면 node.js 서버 측 API로 AJAX 요청을 다시 보낼 수 있습니다. 나는이 방법으로 정확히 많은 중소 규모의 응용 프로그램을 만들었습니다.

Node.js는 사용자가 디자인 한 방식으로 API를 처리 할 수 ​​있지만 노드에서 초기 경로를 지정해야 사용자가 처음으로 angel.js 응용 프로그램을 부트 스트랩하는 HTML 페이지를 표시하고 추가 자바 스크립트가로드됩니다 및 css 라이브러리가 필요합니다. 이 라우트를 정의한 다음 노드 응용 프로그램에서 정적 자원을 설정하여 브라우저가 각도 응용 프로그램을 시작하기 위해 이러한 작업을로드 할 수 있도록하십시오.

각도 응용 프로그램 자체는 명시적인 응용 프로그램의 정적 리소스 폴더에 살고있는 javascript 파일에 포함됩니다. 일반적으로 /js/myNgApp.js와 같은 것이 시작될 것입니다.하지만 컨트롤러, 지시문, 서비스 등을 자신의 js 파일로 분리하면 좀 더 이국적입니다. 나중에 할 수있는 일입니다.

각도 앱이로드되고 브라우저에서 실행되면 각도의 $resource service을 사용하여 노드의 api에 대한 ajax URL을 정의한 다음 각도 클라이언트가 요청을 받거나 게시하도록 할 수 있습니다 이 URL들에.

보안이 응용 프로그램에서 필요한 경우 각도 응용 프로그램을로드하기 전에 페이지와 URL로 구현해야합니다. 익스프레스 보안 프레임 워크가 있습니다. 나는 passport을 사용합니다.

Chrome에서는 개발자 도구 (특히 네트워크 탭)가 가장 친한 친구가됩니다.

+0

제안을 주셔서 감사합니다. 꼭 한번 살펴 보겠습니다. 여권 .. 그것은 또한 API 발신자를 인증하는 데 유용합니다 OAuth 기능을 가지고있는 것 같습니다. – Jerome

+0

예, 여권에는 Twitter, Facebook 및 기타 소스와 통합되는 OAuth가 있거나 다른 OAuth 소스를 사용할 수 있습니다. 자신의 OAuth 소스로 롤백 한 적이 없지만 그렇게하면 연결할 수 있습니다. – BoxerBucks

관련 문제