您的位置:首页 > Web前端 > Node.js

Node.js 学习笔记(一)

2012-07-30 16:03 651 查看
什么是Node.js

"Node.js 是服务器端的JavaScript 运行环境,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,Node.js 采用V8 引擎,同样,Node.js 实现了类似Apache 和nginx 的web 服务,让你可以通过它来搭建基于JavaScript 的Web App。



图1-1:node.js主页http://nodejs.org/

下面我们解释下什么叫阻塞

//根据ID,在数据库中Persons表中查出Name
var name = db.query("select name from persons where id=1");
//进程等待数据查询完毕,然后使用查询结果.
output("name")


上面的这段代码查询过程中进程往往是在等待查询的结束,然后将结果返回。这就造成了阻塞,这对于高迸发高密集的网络。一方面进程很长时间处于等待,一方面为了应付新的请求不断的增加新的进程,严重了服务器的性能也容易被慢链攻击(服务端故意不接收数据加长进程等待时间)

怎么解决阻塞

建立一种事件机制,当发送查询后将进程交出,当数据返回后触发事件后立即执行output;

为什么js适合解决阻塞

1.Js是函数式编程函数可以当参数直接调用,js还支持匿名函数。

db.query("select name from persons where id=1",function(name){
output(name);
});


2. js独特的生命周期 闭包

//异步写法:
function main(){
var id = "1";
db.query("select name from persons where id=" + id,function(name){
output("person id:" + id + ", name:" + name);//n秒后数据返回后执行回调
});
}
main();


安装node.js

搭建第一个web
新建个hello的js

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at ' target='_blank'>http://127.0.0.1:1337/');[/code] 
在命令中输入



然后我们访问http://127.0.0.1:1337/



第一个web就搭建好了:)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: