杂项:node.js
| ylbtech-Tool-Runtime-Javascript-Node.js:Node.js |
Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。
V8引擎执行Javascript的速度非常快,性能非常好。Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
| 1. 发展史返回顶部 |
- 2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。
- 2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用。
- 2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。
- 2010年年底,Node.js获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node.js的发展。
- 2011年7月,Node.js在微软的支持下发布Windows版本。
| 2. 特性返回顶部 |
| 3. 模块返回顶部 |
| 4. 安装返回顶部 |
| 5. 版本发布返回顶部 |
- tls: 修复偶尔发生的挂起和部分显示 (Fedor Indutny) - 修复 "npm ERR! cb() never called!"
- uv: 升级至 v0.10.17
- npm: 升级至 1.3.11
- readline: 从控制字符开始处理输入 (Eric Schrock)
- configure: 新增 mips-float-abi (soft, hard) 选项 (Andrei Sedoi)
- stream: 对象模式改为允许否值 (isaacs)
- tls: 阻止读取返回冗余的值 (Nathan Rajlich)
- tls: NPN 协议改为连接到本地 (Fedor Indutny)
- uv: 升级至 v0.10.15
- stream: 不阻塞 unset _events 属性 (isaacs)
- stream: 传递的 'buffer' 用可解码的方式进行编码 (isaacs)
- uv: 升级至 v0.10.14
- http_parser: 不接收 PUN/GEM 方法作为 PUT/GET (Chris Dickinson)
- tls: 修复当读取的 ssl 被销毁时的声明 (Fedor Indutny)
- stream: 当监听器被移除时抛出 'error' (isaacs)
- dgram: 修复错误的 send() 的参数的声明 (Ben Noordhuis)
- readline: 在退出终端原始模式前暂停 stdin (Daniel Chatfield)
- v8: 修复 CVE-2013-2882 的后门
- npm: 升级至 1.3.8
- crypto: 修复 assert() 的十六进制数据输入 (Ben Noordhuis)
- crypto: 修复 randomBytes() 错误路径的内存泄漏 (Ben Noordhuis)
- events: 修复内存泄漏,不暴露事件名称 (Ben Noordhuis)
- http: 正确处理 hex/base64 编码 (isaacs)
- http: 提升 res.write(buf) 性能 (Ben Noordhuis)
- stream: 修复双管道错误显示 (Eran Hammer)
| 6. 集成开发环境返回顶部 |
| 7. 应用方向返回顶部 |
| 8. 示例程序返回顶部 |
var http = require('http');
server = http.createServer(function (req, res) {
res.writeHeader(200, {"Content-Type": "text/plain"});
res.end("Hello World\n");
});
server.listen(8000);
console.log("httpd start @8000");
| 9. 事务处理示例返回顶部 |
var http = require('http');
var server = http.createServer(function(request, response) {
// handle your request
});
传入 createServer 的 function 在每次 HTTP 请求时都将被调用执行,因此这个 function 也被称为请求的处理者。事实上通过 createServer 返回的 Server 对象是一个 EventEmitter,我们需要做的仅仅是在这里保存这个 server 对象,并在之后对其添加监听器。
var http = require('http');
var server = http.createServer();
server.on('request', function(request, response) {
// handle your request
});
当 HTTP 请求这个服务时,node 调用请求处理者 function 并传入一些用于处理事务相关的对象:request 和 response。我们可以非常方便的获得这两个对象。
var http = require('http');
var server = http.createServer();
server.on('request', function(request, response) {
// handle your request
}).listen(8080);
为了对实际的请求提供服务,在 server 对象上需要调用 listen 方法。绝大多数情况你需要传入 listen 你想要服务监听的端口号,这里也存在很多其他的可选方案,参见 API reference。
| 10.返回顶部 |
| 11.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
杂项:node.js的更多相关文章
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 利用Node.js的Net模块实现一个命令行多人聊天室
1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...
- Node.js:进程、子进程与cluster多核处理模块
1.process对象 process对象就是处理与进程相关信息的全局对象,不需要require引用,且是EventEmitter的实例. 获取进程信息 process对象提供了很多的API来获取当前 ...
- Node.js:理解stream
Stream在node.js中是一个抽象的接口,基于EventEmitter,也是一种Buffer的高级封装,用来处理流数据.流模块便是提供各种API让我们可以很简单的使用Stream. 流分为四种类 ...
- Node.js:Buffer浅谈
Javascript在客户端对于unicode编码的数据操作支持非常友好,但是对二进制数据的处理就不尽人意.Node.js为了能够处理二进制数据或非unicode编码的数据,便设计了Buffer类,该 ...
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- Node.js入门(一)
一.Node.js本质上是js的运行环境. 二.可以解析js代码(没有浏览器安全级的限制): 提供系统级的API:1.文件的读写 2.进程的管理 3.网络通信 三.可以关注的四个网站: 1.https ...
- Node.js学习笔记——Node.js开发Web后台服务
一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...
随机推荐
- 根据ip,实现地址信息查询接口
偶然发现的360搜索的ip查询接口,记录下: 接口地址:https://m.so.com/position 使用方式1:传ip 如访问https://m.so.com/position?ip=47.1 ...
- “开始菜单”按钮今年8月将重回Windows 8
本月早些时候微软明确表示,“开始菜单”将重新回归Windows 8操作系统.尽管微软当时并没有公布具体的时间表,但据熟悉微软内部运作的消息灵通人士透露称,“开始菜单”极有可能将出现在预计于今年8月发布 ...
- 3.3 shell控制流结构
shell中的控制流包括if then else语句,case语句,for循环,until循环,while循环,break控制,continue控制. 条件测试: 有时判断字符串是否相等或检查文件状态 ...
- LMS算法
一.感知器算法和LMS算法 感知器和自适应线性元件在历史上几乎是同时提出的,并且两者在对权值的调整的算法非常相似.它们都是基于纠错学习规则的学习算法. 感知器算法存在如下问题:不能推广到一般的前向网络 ...
- Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据
在Python操作Excel 的模块有 xlrd.xlwt.xlutils等. xlrd:读取Excel文件数据 xlwt:写入Excel 数据,缺点是Excel格式无法复用,为了方便用户,写入的话, ...
- (6)time&datetime(时间模块)
什么是时间模块 就是处理时间相关的功能 如用户注册的时间.统计程序运行的时间等 time 模块 计算机中有三种时间 1.时间戳 从1970年到今天,这个时间段中间经历的秒数 获取时间戳:time.t ...
- hdu 5184 类卡特兰数+逆元
BC # 32 1003 题意:定义了括号的合法排列方式,给出一个排列的前一段,问能组成多少种合法的排列. 这道题和鹏神研究卡特兰数的推导和在这题中的结论式的推导: 首先就是如何理解从题意演变到卡特兰 ...
- WPF优化体验<一>(转)
最近将一个开发和维护了五年的一个Winform项目进行重构,考虑到最近很流行将用户体验挂在嘴上,于是采用了WPF技术,希望能在外观和体验上有一个全新的效果. 以前使用Winform的时候内存控制得不错 ...
- proc文件系统漫谈
1. /proc/buddyinfo:/proc/buddyinfo是linuxbuddy系统管理物理内存的debug信息. 在linux中使用buddy算法解决物理内存的外碎片问题,其把所有空闲的内 ...
- Linux引导启动顺序
1.所有的__init函数在区段.initcall.init中还保存了一份函数指针,在初始化时内核会通过这些函数指针调用这些__init函数,并在整个初始化完成后,释放整个init区段(包括.init ...
