什么是node.js

1、服务器端JavaScript和客户端JavaScriptvar

JavaScript作为一种脚本语言,需要一个宿主环境,而客户端JavaScript的宿主环境就是浏览器,而服务器端JavaScript的宿主环境是服务器。常见的服务器端JavaScript环境有Node.js、JaxerNarwhal

服务器端JavaScript不是个新概念,其实老早就有了,从九六年Netscape普及JavaScript的时候,服务器端和客户端都是考虑到了的,只不过只有客户端健壮发展起来了,服务端的故事直到现在才被慢慢提起。常见的

2、node.js

Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码。

Node.js和Jaxer、Narwhal不同的地方是,它基于事件模型,而不是线程模 型。例如,支持PHP和其它CGI脚本的web服务器Apache就是基于线程的,它为每一个传入的请求启动一个系统线程。虽然对于许多应用来说这没有问题,但是许多需要长连接请求的应用,如FriendfeedGoogle Wave,线程模型并没有很好的扩展性。

Node.js使用事件循环而非线程,这样他能够扩展到数百万的并发连接。它克服如下缺陷,服务器花费其大部分时间用于等待I/O操作,如从硬 读取一个文件,访问一个外部Web服务或等待一个文件上传完毕,因为这些操作对比内存操作来说是非常慢的。每个I/O操作在Node.js都是异步的,也就是说,在I/O操作正在进行的同时,服务器可以继续处理传入的请求。JavaScript非常适合基于事件的编程,因为它的匿名函数和闭包特性使内联回调函数的编写变得异常简单,并且JavaScript开发人员早已熟悉这样的技巧。此事件为基础的模式,使得Node.js速度非凡。并能轻松满足实时应用程序的需求。

3、node.js例子(帮助理解)

3.1、Hello World例子
<pre name="code" class="javascript">var sys = require("sys");
sys.puts("Hello World!");

如上代码,加载sys模块,其中包含处理系统级任务的功能,如输出到终端。要使用一个模块中的一个函数,您必须通过存储模块的变量来调用它,在我们的例子中sys就是这个变量。
 
3.2、创建一个HTTP服务器
  1. var sys = require("sys"),  
  2.     http = require("http");  
  3. http.createServer(function(request, response) {  
  4.     response.sendHeader(200, {"Content-Type""text/html"});  
  5.     response.write("Hello World!");  
  6.     response.close();  
  7. }).listen(8080);  
  8. sys.puts("Server running at http://localhost:8080/"); 

此脚本导入syshttp模块,并创建了一个HTTP服务器。传递给http.createServer的匿名函数,将在每请求到来时被调用。服务器被创建之后,它会监听端口8080。当请求到来时,我们首先发送包含内容类型和状态代码200(表示成功)的HTTP协议头。然后,发送“Hello World!”并关闭连接。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值