2012-05-14 58 views
0

我開始學習Express.js(用於Node.js)和Backbone.js。我已經研究了大量的文檔和教程,但有一些細節我還沒有趕上,沒有相關的信息。我希望有人可以在這裏幫助:如何在express.js(node.js)和backbone.js之間混合視圖(html + css + js)

我最大的問題之一是視圖。我瞭解如何在您的backbone.js app.js中構建MVRC,在Express.js應用程序中使用MVC,如何通過JSON持久化後端(express),使用Socket.io進行實時等。但是, ,你如何設計VIEWS?

這兩個框架都提供了自己的VIEWS,但很明顯,如果您使用的是Backbone.js,那是因爲您希望使用Backbone在客戶端(HTML,CSS,jQuery和JS)上構建VIEW,而不是快遞(翡翠和模板)。如果你使用Express.js是因爲它提供了比Node.js更多的工具,比如認證,會話控制,數據庫等。

你怎麼混在一起的?我已經看到了互聯網上的一些例子喜歡這本書(O'Reilly Media公司):

http://addyosmani.github.com/backbone-fundamentals/

具體而言,在有關「選項7」的TodoList的應用程式,透過GitHub的源代碼。

在這裏,他們混合使用這兩種技術(Backbone.js和Express.js與MongoDB)。他們在客戶端和服務器之間進行數據持久化,連接到Redis等,,但我仍然不明白他們爲什麼在Express.js上使用Jade和/ views作爲主HTML模板,但CSS,jQuery和/ public中的圖像在Backbone .js文件。

難道我們不應該在Backbone.js中完全構建HTML5,CSS3和JS嗎?如果您希望所有MVC位於前端,那麼通過/ ROUTES從後端檢測HTML模板的意義何在?

非常感謝你,希望能得到一個答案:-)

回答

0

我的一個最大的問題是意見。我瞭解如何在您的backbone.js app.js中構建MVRC,在Express.js應用程序中使用MVC,如何通過JSON持久化後端(express),使用Socket.io進行實時等。但是, ,你如何設計VIEWS?

Express.js中的視圖是可以通過HTTP呈現並返回給客戶端/瀏覽器的模板。

你怎麼把它混在一起?

你有一個客戶端和一個服務器端不知道你是什麼意思混在一起。如果您的瀏覽器需要數據,您可以向服務器發送請求。

難道我們不應該在Backbone.js中完全構建HTML5,CSS3和JS嗎?

大部分時間你會。

如果您希望所有的MVC都在前端,那麼從後端通過/ ROUTES調試HTML模板又有什麼意義呢?

這主要是爲了加快網頁,所以你不必重新渲染整個頁面,但只有一部分。

+0

,謝謝你的回答。當我寫「混淆」時,我的意思是我在很多示例中看​​到了什麼(例如,着名的TodoList使用我以前編寫的socket.io和express.js),即在CSS上編碼CSS和Backbone JavaScript前端和HTML(Jade模板)在後端。我無法找到所有HTML,CSS和jQuery都構建在前端(/ public目錄)上的示例,只是將後端邏輯(持久性,數據庫,會話等)留給Express.js。 – user1106811

+0

Express.js中的模板不在公共目錄中,但在視圖目錄中。原因是因爲它們在服務器上呈現,然後傳遞給客戶端。所以使用框架時幾乎不會看到純粹的html文件。這並不是什麼特別的東西,這是大多數Web框架所做的。 – Pickels