Nodejs系列-1

来源:互联网 发布:淘宝怎么看天猫积分 编辑:程序博客网 时间:2024/05/17 17:57

1.Nodejs是什么?

Node.js不是一种独立的语言,与php即是语言也是平台不同,也不是javascript的框架更不是浏览器的库,不能与Extjs相提并论。Node.js是一个让javascript运行在服务端的开发平台。

2.Node.js能做什么?

1、javascript是为客户端而产生的,Node.js是为服务端(网络)而生的。

2、适合具有复杂逻辑的网站

3、基于社交网络的大Web的应用

4、Web socket服务器

基于TCP的双向的,全双工的数据连接

双向:客户端、服务器端

全双工:数据的发送与接收,两者同步进行

建立socket应用

服务器必须支持web socket

nodejs

5、TCP/UDP套接字应用程序

6、命令行工具

7、交互式终端程序

3、Node.js最大的特性就是采用异步式I/O与事件驱动的框架设计

传统的框架是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切换来弥补同步式I/O调用时的时间开销。

Node.js使用的单线程模型,在执行的过程中会维护一个事件队列,程序在执行时在进入时间循环等待下一个事件到来

普通:

<span style="font-size:14px;">res=db.query('select * from user');res.output();</span>
Node.js:

<span style="font-size:14px;">res = dbquery('select * from user',function(res){    res.output();});</span>
程序会自动往下执行

4.浏览器引擎革命

Google Chrome引擎是V8(最快的引擎)。Nodejs的引擎引用的就是V8,所以,为什么ExtJs在Chrome如此的快,就以为如此。

5.

node -v 版本

node -e (即eval ) 把字符串直接当为js代码执行

node  编译模式(直接编译js代码)

3.建立HTTP服务器(这里是最简单的例子)

<span style="font-size:14px;">var http = require('http');   //建立http服务var serv = http.createServer(function(req, res) {  //调用createServer方法console.log('有人进来了');/*res.writeHeader(200, {'content-type' : 'text/html;charset="utf-8"'});*/res.writeHeader(404, {'content-type' : 'text/html;charset="utf-8"'});//res.write('这是正文');res.write('你所访问的资源不存在');res.end();}).listen(8888);console.log('服务器开启成功');</span>
4.好用的工具supervisor

npm install supervisor -g (npm安装包自动安装,不多说)

最后小结一下同步I/O与异步I/O的区别:

同步式I/O:异步式I/O:

利用多线程提供吞吐量 单线程即可实现高吞吐量

通过事件片分割和线程调度利用多核CPU通过功能划分利用多核

需要有操作系统调度多线程使用多核CPU可以将单线程绑定到单核CPU

难以充分利用CPU资源 可以充分利用CPU资源

内存轨迹大,数据局部性弱 内存轨迹小,数据局部性强

符合线性的编程思维 不符合传统编程思维


以上为个人观点,如有不对,欢迎指出!

纯属手打,转载请标明出处!


0 0
原创粉丝点击