2015-05-02 45 views
1

我對這個主題很陌生,所以請原諒我,如果這是一個明顯的問題。webapps的路由基礎設施 - express

從我的理解中,傳統網頁(VS類的現代webapps)提供了特定的路線,如www.example.com/path1來爲特定頁面提供服務。可以說,在這條路線上可能有一些並行的數據庫查詢resource1resource2

現在在一個更現代的web應用程序可能存在多個ajax調用。如果每個呼叫請求www.example.com/path1這將導致不必要的數據庫流量,不是嗎?

問題是如何設置這種應用程序的路線?

類似於:www.example.com/resource1,www.example.com/resource2 ......每個ajax調用都會請求他自己的特定路由嗎?

回答

1

快速應用的典型模式是將HTML模板作爲靜態資源提供,由JSON REST API爲您的AJAX調用提供支持。例如,你可以有一個結構是這樣的:

GET /api/articles所有文章列表

POST /api/articles創建一個新的文章

GET /api/articles/{article_id}獲取的具體條款

..和等。這些API將返回由用戶瀏覽器中運行客戶端的javascript和HTML模板呈現的JSON數據。

http://example.com/articles發出的瀏覽器請求只會返回一個基本的index.html模板,而您的客戶端JavaScript將負責對/api/articles進行相應的ajax調用以獲取實際數據。

您可能會刪除您的JSON API路由的/api前綴,而是使用您的客戶端路由的URL片段,如下所示:http://example.com/#!/articles/123。例如,這是mean.js所遵循的模式。

請注意,這不是做事情的唯一方法,取決於您的需求,它可能不是最好的方式。這些只是用於在express.js中構建應用程序的常用模式。