杂项: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 ...
随机推荐
- 软工作业No.4
2048小游戏—设计开发 软件需求规格说明书 甜美女孩 2018年10月 ——————————————————————————— 文档修改记录 日期 版本 说明 作者 2018-10-18 V1. ...
- 打开TestFlight并链接到具体的应用下载界面
在我们应用正式上线前,许多时候都会有小流量的测试,选取部分核心用户抢先试用,在TestFlight出来之前,一般都是通过企业证书打包,然后提供给用户下载地址,安装测试使用,这个有个不爽之处就是,企业i ...
- 用MyEclipse JPA创建项目(一)
MyEclipse 3.15 Style——在线购买低至75折!火爆开抢>> [MyEclipse最新版下载] 本教程介绍了MyEclipse中的一些基于JPA的功能. 阅读本教程时,了解 ...
- SharePoint 元数据服务-PowerShell
1. 获取元数据服务应用程序标识 Get-SPServiceApplication 2. 获取指定的元数据服务应用程序实例 $metadataApp = Get-SPMetadataServiceAp ...
- 《C语言中分配了动态内存后一定要释放吗?》
问:比如main函数里有一句 malloc(),后面没有free()1.那么当main结束后,动态分配的内存不会随之释放吗?2.如果程序结束能自动释放,那么还加上free(),是出于什么考虑? 答: ...
- 爱宝A-1180热转印条码打印机 打印乱码,对不齐的问题
本文记录了在使用打印机打印时出现的问题 上线对齐... 1拆开后看了.机械.没有问题. 2考虑打印设置.. 发现问题不大 3询问官网. 重新安装驱动 重新换纸张. ·条码机_win xp.7.8.10 ...
- C++ 写的地图控件,支持google 百度 在线离线地图
C++处理google 百度地图在网上查阅了很多都是通过浏览器方式显示地图信息, 跟我目前项目很不符合, 所以仔细研究了一下C++方式显示地图.通过地图投影以及墨卡托投影,在通过平面地图计算经纬度. ...
- Dlib与OpenCV图片转换
re: 1. https://zhuanlan.zhihu.com/p/36489663 2. https://stackoverflow.com/questions/38180410/convert ...
- CodeForces - 285E: Positions in Permutations(DP+组合数+容斥)
Permutation p is an ordered set of integers p1, p2, ..., pn, consisting of n distinct positive in ...
- 数据库备份-SQL Server 维护计划
SQL Server 维护计划(数据库备份) 公司的项目都需要定期备份,程序备份关掉iis站点复制文件就可以了,难受的地方就是数据库的备份了.服务器上装的大都是英文版,一看见英文,操作都变得小心翼 ...
