NodeJS种类~第二个小例子,达成了request.querystring成效

回来目录

清单 壹. 客户端上应用 jQuery 的事件驱动编制程序
// jQuery code on the client-side showing how Event-Driven programming works

// When a button is pressed, an Event occurs - deal with it
// directly right here in an anonymous function, where all the
// necessary variables are present and can be referenced directly
$("#myButton").click(function(){
     if ($("#myTextField").val() != $(this).val())
         alert("Field must match button text");
});

其实,服务器端和客户端从未别的区别。没有错,这绝非按钮点击操作,也尚未向文本字段键入的操作,但在贰个越来越高的局面上,事件正在
产生。二个总是被确立,这是多少个事变!数据经过连接举行吸收,那也是三个风波!数据通过再三再四截止,那依旧3个轩然大波!

为 什么那种装置类型对 Node 相当漂亮艳?JavaScript
是1种很棒的事件驱动编制程序语言,因为它同意使用匿名函数和闭包,更关键的是,任何写过代码的人都如数家珍它的语法。事件产生时调用的回调函数能够在抓获事件处
进行编辑。那样能够使代码不难编写和掩护,未有复杂的面向对象框架,未有接口,未有过分设计的大概。只需监听事件,编写3个回调函数,别的工作都得以交
给系统处理!

Node.js的优点

nodejs作为3个新生的后台语言,有为数不少抓住人的地点:

RESTful API

单线程

Node.js可以在不新增额外线程的场地下,照旧得以对职分展开并行处理 ——
Node.js是单线程的。它经过事件轮询(event
loop)来贯彻并行操作,对此,我们理应要丰盛利用这点 ——
尽恐怕的防止阻塞操作,取而代之,多采用非阻塞操作。

非阻塞IO

事件驱动

Node 肯定不是如何?

不错,Node 是3个服务器程序。可是,基础 Node 产品必定 像 Apache 或
汤姆cat。本质上,那么些服务器 “安装就绪型” 服
务器产品,协理即时布置应用程序。通过这几个产品,您能够在一分钟内运维并运维一个服务器。Node
肯定不是那种产品。Apache 能透过丰硕2个 PHP 模块来允许开发职员成立动态
Web 页,添加一个 SSL 模块来实现广安连接,与此类似,Node
也有模块概念,允许向 Node 内核添加模块。实际上,可供选取的用于 Node
的模块有数百个之多,社区在创制、公布和换代模块方面丰富活跃,1天依然足以处理数拾个模块。本文前面将切磋Node 的成套模块部分。

 Node 意在缓解哪些难题?

Node 公开声明的靶子是
“意在提供1种简单的构建可伸缩网络程序的方法”。当前的服务器程序有啥样难点?我们来做个数学题。在
Java™ 和 PHP 这类语言中,各样连接都会扭转3个新线程,每一个新线程或者须要二 MB 的配套内部存款和储蓄器。在3个装有 八 GB RAM
的系统上,理论上最大的产出连接数量是 四,000
个用户。随着您的客户群的增强,即使期望您的 Web
应用程序帮衬更加多用户,那么,您必须添加越多服务器。当然,那会扩展服务器花费、流量花费和人工开销等花费。除那几个花费上涨外,还有三个诡秘技术难点,即
用户只怕针对各种请求使用分裂的服务器,由此,任何共享能源都必须在装有服务器之间共享。鉴于上述全部原因,整个
Web
应用程序架构(包蕴流量、处理器速度和内部存款和储蓄器速度)中的瓶颈是:服务器能够处理的产出连接的最大数额。

Node 化解那个题材的措施是:更改连接受服务器的艺术。种种连接发射2个在
Node 引擎的长河中运维的轩然大波,而不是为种种连接生成2个新的 OS
线程(并为其分配一些配套内存)。Node
声称它绝不会死锁,因为它根本不允许行使锁,它不会直接阻塞 I/O 调用。Node
还评释,运营它的服务器能援助数万个冒出连接。

近日你有了2个能处理数万个冒出连接的主次,那么您能透过 Node
实际营造什么吧?借使您有五个 Web
应用程序必要处理那样多连接,那将是壹件很 “恐怖” 的事!那是1种
“假诺你有那些标题,那么它根本小难题”
的难题。在答复上边的题材在此以前,大家先看看 Node
的做事原理以及它的宏图运维格局。

Node 怎么样行事?

Node 自己运转 V8 JavaScript。等等,服务器上的
JavaScript?没有错,您未有看错。对于只在客户机上使用 JavaScript
的程序员而言,服务器端 JavaScript
或许是三个新定义,但以此概念本身并非遥不可及,因而为啥无法在服务器上行使客户机上使用的编制程序语言?

怎样是 V8?V8 JavaScript 引擎是 谷歌(Google) 用于其 Chrome 浏览器的平底
JavaScript 引擎。很少有人思索 JavaScript
在客户机上实际做了些什么?实际上,JavaScript
引擎负责解释并履行代码。谷歌 使用 V8 创设了三个用 C++
编写的超快解释器,该解释器拥有另3个破例特征;您能够下载该引擎并将其内置任何
应用程序。V8 JavaScript 引擎并不仅限于在一个浏览器中运作。因而,Node
实际上会动用 谷歌(Google) 编写的 V八 JavaScript
引擎,并将其重建为可在服务器上应用。太周密了!既然已经有一个科学的缓解方案可用,为什么还要创设1种新语言呢?

事件驱动编制程序

过多程序员接受的教育使她们以为,面向对象编制程序是完善的编制程序设计,那使得他们对别的编制程序方法不屑壹顾。Node
使用了二个所谓的事件驱动编制程序模型。

上边笔者愉前人写的三个质地,让大家更清楚的通晓NodeJS,先辈的篇章

百度周全上:

Node.js是1套用来编排高品质互连网服务器的JavaScript工具包,1雨后春笋的变更由此起首,在Node中,Http是任重(英文名:rèn zhòng)而道远的。Node为创造http服务器作了优化,所以在网上看看的大部演示和库都以集中在web上(http框架、模板库等)。

扩张的模块

Node.js使用Module模块去划分差别的效应,以简化使用的支出。Modules模块有点象C语言中的类
库。每三个Node.js的类库都带有了老大加上的各项函数,比如http模块就隐含了和http作用有关的过多函数,能够扶持开发者很不难地对待如
http,tcp/udp等开展操作,还足以很简单的创办http和tcp/udp的服务器。

要在程序中动用模块是那3个福利的,只须求如下:

在那边,引进了http类库,并且对http类库的引用存放在http变量中了。这年,node.js会在大家应用中摸索是或不是存在node_modules的目录,并且搜索那些目录中是或不是存在http的模块。假如node.js找不到那个目录,则会到全局模块缓存
中去追寻,用户可以透过相对照旧相对路径,内定模块的职责,比如:

var myModule = require(‘./myModule.js’);

模块中带有了重重效用代码片断,在模块中的代码超越二分之一都以个体的,意思是在模块中定义的函数方法和变量,都只可以在同二个模块中被调用。当然,能够将1些方法和变量揭穿到模块外,这一年能够使用export对象去贯彻

首先须要安装nodejs环境,连带文件下载

下载之后,安装之后,在C盘就会冒出nodejs的连带目录

图片 1

OK,大家来看一下什么样兑现request.querystring作用的,即get请求的效率,相关代码如下:

var qs = require('querystring');
var http = require('http');
var formidable = require('formidable');
var exec = require('child_process').exec;
var fs = require('fs');
var filename = '';

var url = require("url");

function start(response, request) {
    var getQuery = url.parse(request.url).query;
    var getData = qs.parse(getQuery); //getData数据 
    console.log(getData["zzl"]);
}

别外一种相比较正规的写法重到querystring字符串,写法如下:

var http = require("http");
var url = require("url");
var params = url.parse(request.url, true).query;
console.log(params.zzl);

备感第三种写法更清晰

测试:

http://127.0.0.1:8888?zzl=1234

对于nodejs的console控制台的结果就为:

图片 2

 回来目录

相关文章