2013-08-17 17 views
5

Próbuję napisać aplikację z Node.js z Express i Angularjs.AngularJS i Node.js z integracją ExpressJS

Czy mogę zezwolić firmie AngularJS na obsługę wszystkich wniosków o lądowanie? i Node.js jest wyłącznie dla interfejsów API? oznacza to, że wszystkie trasy zapisane w pliku Node.js będą wyglądały następująco:

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); 

A AngularJS będzie w stanie samodzielnie rozwiązać adres URL, np. localhost/users/Some-Name?

Jakie są najlepsze praktyki, które należy zastosować, łącząc te dwa elementy razem?

Czy zalecana jest aplikacja AngularJS i Node.js na dwie różne aplikacje? i jakie są sposoby, aby to zrobić?

Z góry dziękuję !!

+0

Odpowiedź od @BoxerBucks jest niezła. Mam projekt startowy dla Express/Angular/Bootstrap/Grunt na github, który może pomóc Ci w drodze: https://github.com/jimschubert/eab –

Odpowiedz

6

Oczywiście, projekt i niuanse każdej aplikacji decydują o tym, jak dokładnie powinna ona zostać skonfigurowana, ale z pewnością można mieć aplikację WWW na jednej stronie działającą w trybie Angular, która sprawia, że ​​AJAX wysyła żądanie do interfejsu API serwera node.js. W ten właśnie sposób stworzyłem wiele małych i średnich aplikacji.

Node.js może obsługiwać twój interfejs API w sposób, jaki zaprojektowałeś, ale będziesz potrzebować początkowej trasy w węźle, którą użytkownicy będą początkowo używać, aby wyświetlić stronę HTML, która uruchamia aplikację angular.js i ładuje dodatkowe javascript i biblioteki css, które będziesz potrzebować. Zdefiniujesz tę trasę, a następnie skonfigurujesz zasoby statyczne w aplikacji węzła, aby przeglądarka mogła załadować te rzeczy, aby zakręcić aplikację kątową.

Sama aplikacja kątowa będzie zawierała pliki javascript, które będą znajdować się w folderze zasobów statycznych w Twojej aplikacji ekspresowej. Zazwyczaj coś takiego jak /js/myNgApp.js zacznie działać - ale możesz uzyskać bardziej egzotyczny oddzielając kontrolery, dyrektywy, usługi itp. Na swoje własne pliki js. To jest coś, co możesz zrobić później.

Po załadowaniu i uruchomieniu aplikacji kątowej w przeglądarce, wystarczy użyć wartości kątowej $resource service, aby zdefiniować adresy URL ajaxów do api w węźle, a następnie klient kątowy wykona polecenie pobrania lub wysłania (lub cokolwiek innego) do tych adresów URL.

Jeśli w aplikacji wymagane są zabezpieczenia, musi to zostać zaimplementowane jako strona i adres URL przed załadowaniem aplikacji kątowej. Istnieją ramy bezpieczeństwa dla ekspresu, które mogą ci w tym pomóc. Używam passport.

W Chrome narzędzia programistyczne (zwłaszcza karta sieciowa) staną się Twoim najlepszym przyjacielem.

+0

Bardzo dziękuję za sugestię, zdecydowanie popatrzę na paszport. Wygląda na to, że ma również funkcję OAuth, która będzie przydatna podczas uwierzytelniania osoby dzwoniącej w api. – Jerome

+0

Tak, paszport ma OAuth, który integruje się z Twitter, Facebook i innymi źródłami lub możesz użyć innego źródła OAuth. Nigdy nie przetoczyłem się przez własne źródło OAuth, ale jeśli to zrobisz, możesz połączyć się z tym również. – BoxerBucks