2014-12-04 204 views
0

我正在使用節點爲後端Angular爲前端,但如果將爲前端和後端聲明相同的路由會發生什麼。我還沒有嘗試過。角度和節點路由

例如:如果我正在構建一個TODO應用程序,並且如果我有/ todos後端服務,並且我正在使用相同的路線使用角度來顯示todos視圖。

回答

3

AngularJS默認處理#之後的路由。所以,如果你不改變這一點,什麼都不會發生。

否則,將調用後端路由。

0

角#像myhost.io/angular/#/someroute而節點提供一般負責的路線一樣myhost.io/some/other/route女巫使得幾乎不可能失敗後,提供了自己的路線!

注:

你一定要小心設定的路線,因爲如果你有靜態文件(如客戶端),以相同的路徑你的路由將不使用明示或者連接。

1

Angular是客戶端瀏覽器框架。您的應用默認爲斜槓(/),它指向您的index.html。您的路線以哈希(#)作爲前綴,防止瀏覽器向服務器發出請求。

角度默認爲客戶端&使用自己的路由機制。 Express提供服務器端RESTful路由,其行爲類似於您的角度應用的REST Api。

如果你想使用HTML5 Pushstate API(刪除散列(/))從默認角度路由機制,唯一分開角度路由和快速/服務器路由,你只需要像你的應用程序結構下面。

express() 
     .use('/api', backend) // backend is express app 
     .use('/', www) // www is public/static files 
     .all('/*', function (req, res, next) { 
      "use strict"; 
      // Just send the index.html for other files to support HTML5Mode 
      res.sendfile('./app/index.html', {root: __dirname}); 
     }) 
     .listen(process.env.PORT || 8888, function() { 
      debug('Express dev server listening on port '); 
     }); 

你的快遞/服務器路線後/API,以及其他途徑(顯然您的角度路線)位於將返回的index.html(HTML快照)

以上機制主要適用於MEAN網絡應用。