学习小结:
1.node.js是什么?
node.js是编写高性能网络服务器的JavaScript工具包(用js开发服务端程序)
2.特点:
单线程,异步,时间驱动,速度快,耗内存
node.js只支持单线程,当大量数据并发的时候只是快速的将对应的事件分配给对应方法异步的去处理,处理完了再继续进行下一步操作的时候就需要事件的驱动,例如请求一个数据,数据回来之后需要一个事件驱动去拿着请求回来的结果去执行一些操作。
简单的举个栗子:
同一时间很多人去医院看病,挂完号后,统一由护士在分诊台分诊到各个对应的科室进行看诊~~~护士在这个单线程上什么都没有干,只是把用户分诊到不听的科室去干,真正解决事情的是在各科室,这就提高了运行的效率,但是缺点是耗内存
3.优缺点:
优点:
性能高,(机制:单线程,任务分配)
开发效率高,(指代码的优化效率高,不是代码的编写效率高)
应用范围广(可运用到桌面系统开发等)
缺点:
新,人少,
中间件少
ide不完善
4.node.js的劣势和解决方案
默认不支持多核,但用cluster可以解决
默认不支持服务器集群,node-http-proxy可以解决
使用nginx做负载均衡,静态的由nginx处理,动态的由node.js处理
forever或node-cluster实现灾难恢复
备注:
接下来该学的框架:
express:完善,稳定,文档全,社区大,
koa:超前,正在完善中,
Hapi:复杂(一个简单的helloWord都要做很多的堆砌)适合做复杂的大型项目,
sails:基于express