快速业务通道

Node你听说吗?Node的身世和所适用的场景

作者 佚名技术 来源 网页制作 浏览 发布时间 2012-03-06
cript模块概念的时候有提及,此外,Davd Flanagan在2009年的一个很酷的实现中也有提到。换句话说,require()对于你来说可能是个新鲜事物,但它不是Node随意添加的一个函数,他是使用JavaScript进行模块化编程的核心概念,Node将这一特性发挥的淋漓尽致。

接下来,http变量用以创建一个服务器。这个服务使用一个回调函数来处理当产生一个连接时的动作。这里的回调函数并未对请求作过多修饰,仅仅以text/plain格式输出一个字符串“Hello World”作为请求响应。这个逻辑非常简单。

实际上,这里展示了使用Node的标准模式:

定义交互类型,并获得一个用以处理这个交互的变量(通过require())。
创建一个新的服务(通过createServer())。
给服务绑定一个回调,用以处理请求。包括处理请求的函数应当包括一个请求…,以及一个响应
通知服务器启动服务,这里需要指定IP和端口(通过listen)。

解释器之惑

尽管通过这种方法可以使用JavaScript轻易的实现一个服务(不管运行代码的虚机实际上跑的是C程序还是其他什么程序),这种做法回避了一个问题:你需要使用JavaScript写出一个服务器吗?为了找到这个问题的答案,我们来考虑一个非常典型的场景。

JSON的处理

这是一种非常典型的web应用,前台使用HTML和CSS,JavaScript用来作数据验证,并和后台进行数据交互。由于你处于web交互的最顶端,你使用Ajax提交数据到后台并从后台获取数据,而不是单单依靠表单提交来实现。如果你是这样做的话,那么你同样会非常喜欢使用JSON的。JSON是如今最流行的传输数据的格式。

因此,这个Ajax也可以比作“把在线拍卖网站里的某些吉他的信息发给我”。这个请求通过网络到达一个运行PHP程序的服务器。PHP服务器不得不给JavaScript返回很多信息,而且这些信息必须以某种形式的数据包发给客户端,而且这个数据包是可以被JavaScript解析的。因此数据可以打包成数组,然后转换为JSON,就像这样:

$itemGuitar = array(
    ''id'' => ''itemGuitar'',
    ''description'' => ''Pete Townshend once played this guitar while his own axe '' .
        was in the shop having bits of drumkit removed from it.'',
    ''price'' => 5695.99,
    ''urls'' => array(''http://www.thewho.com'',
        ''http://en.wikipedia.com/wiki/Pete_Townshend'')
);

$output = json_encode($itemGuitar);
print($output);

回到客户端,JavaScr

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号