DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 什麼是MEAN?JavaScript編程中的MEAN是什麼意思?
什麼是MEAN?JavaScript編程中的MEAN是什麼意思?
編輯:關於JavaScript     

前段日子看到一篇文章提到MEAN這個詞,什麼是MEAN?

其實MENA就是 MongoDB(非關系數據庫) + Express(模板引擎) + AngularJS(MVC javascript庫) + NodeJS(服務器腳本)的簡稱。

它們共同構造 基於 javascript 的 現代web應用全棧開發工具。

MongoDB:

是一種強大、靈活、可擴展的數據存儲方式。

它擴展了關系型數據庫的眾多有用功能,如輔助索引、范圍查詢、和排序、它內置的對MapReduce式聚合的支持和對地理空間索引的支持。

它將傳統數據庫行(row)的概念換成,文檔(document)模型,所謂文檔模型其實就是一個數組對象。

我們來看一下文檔模型:

{“_id” : 1 , “greeting” : “hello,world!” , “foo” : 3}

每個文檔都會帶有一個_id的字段,該文檔模型代表數據庫中有一條記錄,包含字段 greeting , foo 和  _id;

Express:

關於末班引擎Express,我想用按句話來描述它:

是一個簡潔而靈活的node.jsWeb應用框架, 提供一系列強大特性幫助你創建各種Web應用。

豐富的HTTP工具以及來自Connect框架的中間件隨取隨用,創建強健、友好的API變得快速又簡單

Express 不對 node.js 已有的特性進行二次抽象,我們只是在它之上擴展了Web應用所需的功能

AngularJS:

AngularJS是由google開發的一款js庫,它與backone一樣同為MVC腳本庫。

幾乎每種語言的第一課都是講hello world,按照慣例我們也來一個:
代碼如下:
<!doctype html>
<html ng-app>
<head>
 <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>
</head>
<body>
 Hello {{'World'}}!
</body>
</html>

<html ng-app>

聲明了該頁面使用angularJS,當加載該頁時,標記ng-app告訴AngularJS處理整個HTML頁並引導應用。
這個例子在頁面打印hello world,有的人就奇怪了,hello world搞這麼復雜干嘛。

其實{{}}裡內容是一種數據綁定的形式,看完下個例子你就知道它的強大之處了。

我門接著看下一個例子:
代碼如下:
<!doctype html>
<html ng-app>
<head>
 <script src="angular-1.0.1.min.js"></script>
</head>
<body>
 Your name: <input type="text" ng-model="yourname" placeholder="World">
 <hr>
 Hello {{yourname || 'World'}}!
</body>
</html>

在浏覽器裡打開這個頁面,然後試著在輸入框輸入隨意字符,你會發現這些輸入的字符立即更新顯示在問候語中。 是不是很神奇?

的念。 輸入框的任何更改會立即反映到模型變量(一個方向),模型變量的任何更改都會立即反映到問候語文本中(另一方向)。

該示例有一下幾點重要的注意事項:

1. 文本輸入指令<input ng-model=”yourname” />綁定到一個叫yourname 的模型變量。

2. 雙大括號標記將yourname 模型變量添加到問候語文本。

3. 你不需要為該應用另外注冊一個事件偵聽器或添加事件處理程序!

NodeJS

是由Ryan Dahl開發的一款高性能服務器js平台。

它是集於V8引擎開發的,V8引擎是google開發的 javascript引擎,不是汽車的V8引擎 – -是一款高性能引擎,它的性能遠遠超越其他腳本語言。

nodeJS使用的是 異步I / O的通信方式,這種方式和AJAX很類似:
代碼如下:
$.post("url", {title:"post請求"}, function(data){
 console.log("收到響應");
})
console.log("發送ajax結束");

nodejs的請求方式:

代碼如下:
var fs = require('fs');
fs.readFile("/path", function(err, file){
 console.log("讀取文件完成");
});
console.log("發起讀取文件");

我們再看下面這個例子:

當同時執行兩個請求的時候,總耗時取決於耗時最多的那個,而不是兩個請求的耗時總和,因為他們兩個是並行的。

代碼如下:
//第一個請求
var fs = require('fs');
fs.readFile("/path1", function(err, file){
 console.log("讀取文件1完成");
});
//第二個請求
fs.readFile("/path2", function(err, file){
 console.log("讀取文件2完成");
});
console.log("發起讀取文件");

nodejs高性能的另一個原因是基於事件驅動:

node將前端浏覽器中的 事件 引入後端,配合異步I/O,將事件點暴露給業務邏輯。

事件的變成方式具有輕量級,松耦合,只關注事物點等優勢。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved