Node.js 学习笔记(二)
node 特征
1.单进程
我们写的js代码是在单进程环境中执行的,但node本身并不是单线程。比如I/O操作等异步操作是node封装好的 (底层代码应该是c++?)
但这也给node带来了麻烦 我后面会说到。
2.v8
google的大神们所开发的js开源引擎,chrome和最新的火狐用的都是V8引擎。执行速度非常快。
node也使用的v8所以在代码的执行效率上非常快。
3.异步 无阻塞
node的卖点 数据库和/io操作异步无阻塞大大提高了服务器的性能。
我们为什么要使用node
一个事物的存在一定有其意义,当哪天这个意义不存在这个事物也就可以消失了。
上面的特征中除了v8 其余的特性在c#和其他一些语言中都是存在的。那么node存在的意义是什么呢?为什么这么火?
1.前后台统一语言
前端呈现 js html css
后台 js
数据库 js
只需要懂一种语言 一个web项目就可以搞定了。。。。
2.性能
(1)Node的无阻塞,异步提高了服务器的性能。
(2)json
json 是js的一个子集 如果项目中使用json来表示数据对象
那么会大大减少转换损耗的性能。
3.学习
Web 无疑是未来的趋势。作为web中举足轻重的脚本语言,为什么不学习下呢。
什么时候使用
适合使用的场景
- 1.多Ajax多请求的大型应用比如谷歌邮箱之类
- 2. JSON APIs——构建一个Rest/JSON API服务,Node.js可以充分发挥其非阻塞IO模型以及JavaScript对JSON的功能支持(如JSON.stringfy函数)
不适合
- CPU使用率较重、IO使用率较轻的应用——如视频编码、人工智能等,Node.js的优势无法发挥
- 简单Web应用——此类应用的特点是,流量低、物理架构简单
- 学习 如果仅仅是为了追求时髦,且自己对这两门技术还未深入理解的情况下,不要冒险将业务系统搭建在这两个漂亮的名词上,建议使用MySQL之类的传统数据库
推荐学习的网站
推荐学习js的书