什么是MEAN?JavaScript编程中的MEAN是什么意思?


Posted in Javascript onDecember 18, 2014

前段日子看到一篇文章提到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:

什么是MEAN?JavaScript编程中的MEAN是什么意思?

关于末班引擎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结束");

什么是MEAN?JavaScript编程中的MEAN是什么意思?

nodejs的请求方式:

var fs = require('fs');

fs.readFile("/path", function(err, file){

 console.log("读取文件完成");

});

console.log("发起读取文件");

什么是MEAN?JavaScript编程中的MEAN是什么意思?

我们再看下面这个例子:

当同时执行两个请求的时候,总耗时取决于耗时最多的那个,而不是两个请求的耗时总和,因为他们两个是并行的。

//第一个请求

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,将事件点暴露给业务逻辑。

事件的变成方式具有轻量级,松耦合,只关注事物点等优势。

Javascript 相关文章推荐
Jquery Uploadify多文件上传带进度条且传递自己的参数
Aug 28 Javascript
jQuery使用drag效果实现自由拖拽div
Jun 11 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
May 17 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
微信小程序扫描二维码获取信息实例详解
May 07 Javascript
微信小程序实现定位及到指定位置导航的示例代码
Aug 20 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
Sep 14 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
Feb 19 Javascript
使用JS获取当前地理位置方法汇总
Dec 18 #Javascript
node.js中的fs.chmodSync方法使用说明
Dec 18 #Javascript
node.js中的fs.chmod方法使用说明
Dec 18 #Javascript
原生Ajax 和jQuery Ajax的区别示例分析
Dec 17 #Javascript
jQuery中;function($,undefined) 前面的分号的用处
Dec 17 #Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
Dec 17 #Javascript
javascript实现根据身份证号读取相关信息
Dec 17 #Javascript
You might like
PHP爆绝对路径方法收集整理
2012/09/17 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
python进阶_浅谈面向对象进阶
2017/08/17 Python
详谈python read readline readlines的区别
2017/09/22 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
python实现KNN近邻算法
2020/12/30 Python
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
关于工资低的辞职信
2014/01/14 职场文书
大学旷课检讨书
2014/01/28 职场文书
高中毕业生的个人自我评价
2014/02/21 职场文书
购房协议书范本
2014/04/11 职场文书
献爱心倡议书
2014/04/14 职场文书
主要负责人任命书
2014/06/06 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
土地转让协议书
2014/09/27 职场文书
新年晚会开场白
2015/05/29 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
初中思想品德教学反思
2016/02/24 职场文书
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技