Nodejs系列-1

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值