原创 第7章-使用ORM類庫Mongoose提升你的Node.js數據-7.3.使用鉤子保持代碼的邏輯清晰

在複雜的、擁有很多相互關聯對象的應用中,我們可能會在保存一個對象之前想執行某些特定的邏輯。 鉤子(Hooks)正是存儲這些邏輯的好地方。 例如,我們可能想在保存book這個文檔之前上傳一個PDF: bookSchema.pre

原创 第7章-使用ORM類庫Mongoose提升你的Node.js數據-7.2.Mongoose的原型

原型是一個JSON格式的類,這個類包含一些關於文檔的類型、屬性等的信息。 如果需要,他也可以存儲一些驗證信息和默認值。他還可以包含一些業務邏輯以及其他重要的信息。 換句話說,原型可以作爲文檔的藍圖。模型創建的時候需要原型(即:

原创 第4章-模板引擎Jade和Handlebars-4.1.模板引擎

模板引擎是一個庫,或者是一個使用一定規則/語言來解釋數據並渲染視圖的框架。 在Web應用中,視圖就是HTML頁面(或頁面的一部分),也可以是JSON或XML文件; 在桌面程序中,也可以是圖形用戶界面GUI。對應到熟悉的MVC框架

原创 第4章-模板引擎Jade和Handlebars-4.2.Jade的語法和特性

Jade是Node.js的一個模板引擎,他借鑑了Haml,語法和Haml相似,支持空格縮進。 一、標籤 一行開頭的任何文件都會被默認解釋成HTML標籤,Jade的主要優勢是爲HTML元素同時渲染閉合和開始標籤, 標籤後的文本和空格

原创 第7章-使用ORM類庫Mongoose提升你的Node.js數據-7.7.嵌套的文檔

往NoSQL數據庫中存儲模型很適合使用嵌套的文檔。 例如:我們可以使用一個單獨的集合(users)代替兩個集合(posts和users),這個單獨集合中的每一項都包含posts 決定是使用分開的集合還是嵌套的文檔不止是一個代碼結

原创 第8章-使用Express.js和Hapi構建Node.js-REST-API服務-8.2.項目依賴

一、項目依賴 現在開始我們的項目, 把依賴寫入到package.json文件中 { "name": "rest-express", "version": "0.0.1", "description": "REST API a

原创 4.1.3.簡單模擬HTTP服務器

HTTP實際上是基於TCP的應用層協議,他在更高層次封裝了TCP的使用細節,使網絡請求操作更爲易用。TCP連接是因特網上基於流的可靠連接,他爲HTTP提供了一條可靠的比特傳輸管道。從TCP連接一端輸入的字節會從另一端以原有的順序、正確地傳

原创 第9章-WebSocket、Socket.IO和DerbyJS的實時應用程序-9.3.用DerbyJS,Express.js和MongoDB搭建一個在線協作的代碼編輯器

Derby是一個新的,成熟的MVC框架,作爲Express的中間件使用。 Express.js是使用中間件概念增強應用程序功能的一個流行的node框架。 Racer也支持Derby,他是一個數據同步引擎,類似Handlebars的模板

原创 只有20行Javascript代碼!手把手教你寫一個頁面模板引擎

原文地址:http://blog.jobbole.com/56689/ AbsurdJS 作者寫的一篇教程,一步步教你怎樣用 Javascript 實現一個純客戶端的模板引擎。整個引擎實現只有不到 20 行代碼。如果你能從頭看到尾的話,還

原创 第9章-WebSocket、Socket.IO和DerbyJS的實時應用程序-9.2.Socket.IO和Express.js

大多數的實時Web應用程序中,服務器和客戶端之間的通信發生在響應報文裏,或者是對用戶行爲的響應,或者是從服務器獲取數據更新的結果。 安裝Socket.IO $npm install [email protected] –save pa

原创 第8章-使用Express.js和Hapi構建Node.js-REST-API服務-8.4.重構:使用Hapi搭建REST API服務器

Hapi是一個企業級的框架。他比Express.js複雜,功能更加豐富,更適合大團隊開發使用。由Walmart Labs的Eran Hammer維護。 Hapi是一個框架,他的日誌功能十分強大。 安裝好Hapi後 一、創建程序入口文件h

原创 第7章-使用ORM類庫Mongoose提升你的Node.js數據-7.10.Express.js+Mongoose=真正的MVC

爲了避免在ORM中重建其他所有無關的組件,比如templates、routes以及forth,