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

Handlebars庫是另一個模板引擎。他繼承自Mustache,所以大部分語法是兼容Mustance的。但Handlebars也新增了很多特性,比如superset。 在設計上,Handlebars不同於Jade,他不允許在模板

原创 第4章-模板引擎Jade和Handlebars-4.5.單獨使用Handlebars

可以通過NPM安裝Handlebars,用命令$npm install handlebars 或$npm install handlebars --save. 示例: handlebars-example.js文件如下: var

原创 第5章-MongoDB、Mongoskin特性-5.4.Node.js版原生MongoDB驅動示例

首先,先安裝MongoDB的Node.js版原生驅動: $npm install [email protected] 不要忘了包含package.json文件的依賴關係: { "name": "node-example",

原创 第5章-MongoDB、Mongoskin特性-5.3.用控制檯操作Mongo

在mongodb的bin目錄輸入如下命令: mongo,或者直接雙擊mongo.exe運行 如果已經將MongoDB的位置添加到了$PATH裏,可以直接輸入mongod 如果看到:MongoDB starting: pid=7

原创 第5章-MongoDB、Mongoskin特性-5.2.簡單且正確安裝MongoDB

一、Windows下安裝 1、下載安裝包:mongodb-win32-x86_64-2.6.6.zip 解壓如下: 2、創建目錄 D:\mongodb下建立data文件夾,然後在該data文件夾下分別建立db,log兩個文件夾

原创 第5章-MongoDB、Mongoskin特性-5.5.Mongoskin的主要方法介紹

Mongoskin比MongoDB的原生驅動提供更好的API。像之前那樣,在NPM上安裝一個模塊 $npm install [email protected] 和數據庫的連接 var mongoskin = require('mong

原创 第4章-模板引擎Jade和Handlebars-4.6.Express.js中Jade和Handlebars的用法

默認情況下,Express.js 4.x 和 3.x可以使用提供給res.render方法的模板擴展,也可以使用通過view engine設置的默認擴展,去調用模板庫裏的require方法和__express方法。換句話說,Exp

原创 第7章-使用ORM類庫Mongoose提升你的Node.js數據-7.8.虛擬字段

虛擬字段並不真實存在於數據庫中,但是在Mongoose文檔中和普通字段中扮演着同樣的角色。 簡單來講,虛擬字段除了不會存入數據庫外,其他方面和普通字段沒有區別。 一、用虛擬字段創建聚合字段是很不錯對選擇。 例如:如果我們的系統需

原创 第6章-在Node.js應用中使用session和OAuth進行用戶認證和授權

今年來,Web應用逐漸不再相互獨立,安全性也日益重要。 作爲開發者,我們不僅被鼓勵使用市面上衆多的第三方服務(如QQ、微信、微博等),也被希望作爲服務商向外界提供服務(如提供API接口)。在這種情況下,我們需要使用某些手段來確保

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

Mongoose是一個基於Node.js和MongoDB的高級ORM類庫。 使用ORM有很多優勢,不只是利於組織代碼或易於開發這麼簡單。 典型的ORM是現代軟件工程至關重要的一部分。 Mongoose能從數據庫中提取出任何信息

原创 第4章-模板引擎Jade和Handlebars-4.3.單獨使用Jade

模板引擎並不總是和Node.js一起使用(也不總是和框架一起用,比如Express.js) 有時,我們可能只是單獨使用Jade,比如生成一個郵件模板,發佈前預編譯Jade和調試等。 一、安裝Jade模塊 1.用命令$mkdir

原创 第7章-使用ORM類庫Mongoose提升你的Node.js數據-7.6.使用population建立關係和連接

雖然,在NoSQL類的數據庫,例如MongoDB中是不存儲關係數據的,但是我們可以在應用層進行存儲。 Mongoose提供了這一特性,名爲population。 他允許我們使用不同的集合來填充文檔的特定部分。 假設我們有po

原创 第5章-MongoDB、Mongoskin特性-5.1.NoSQL數據庫

NoSQL數據庫、也叫非關係數據庫,其開源、水平擴展容易,適合用於分佈式系統。 NoSQL數據庫比起傳統數據庫更適合處理大數據。實現的關鍵是數據庫實體之間的關係並不存儲在數據庫本身(沒有更多的查詢);他們轉移到了 應用層或者對象關

原创 第7章-使用ORM類庫Mongoose提升你的Node.js數據-7.4.自定義靜態方法和實例方法

除了數十個內建的Mongoose模型方法,我們還可以增加一些自定義的方法。 比如,當我們實現自定義實例方法buy()後,就可以調用practicalNodeBook文檔的buy()方法。 bookSchema.method({

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

就像在很多其他ORM中一樣,在Mongoose中,模型都是最基礎的對象。 將原型編譯爲一個模型,使用mongoose.model(name, schema)即可 如: var Book = mongoose.model('Bo