稳定度: 3 - 锁定io.js又一个简单的模块加载系统。在io.js中,文件和模块是一一对应的。以下例子中,foo.js加载的同目录下的circle.js。foo.js的内容:var circle = require('./circle.js');console.log( 'The area of a circle of radius 4 is ' + circle.area(4));circle.js的内容:var PI = Math.PI;exports.
稳定度: 2 - 稳定HTTPS 是建立在 TLS/SSL 之上的 HTTP 协议。在io.js中,它被作为单独模块实现。Class: https.Server这个类是tls.Server的子类,并且和http.Server触发相同的事件。更多信息请参阅http.Server。server.setTimeout(msecs, callback)参阅http.Server#setTimeout()。server.timeout参阅http.Server#timeout。https.
稳定度: 2 - 稳定你必须通过require('http')来使用 HTTP 服务器和客户端。io.js中的 HTTP 接口被设置来支持许多 HTTP 协议里原本用起来很困难的特性。特别是大且成块的有编码的消息。这个接口从不缓冲整个请求或响应。用户可以对它们使用流。
这些对象是所有模块都可用的。其中的一些对象不是真正的在全局作用域内,而是在模块作用域内 - 它将会在文档中被指出。global{Object} 全局命名空间对象。在浏览器,顶级作用域是全局作用域。这意味着在浏览器的全局作用域中,你创建了一个对象那么就是定义了一个全局对象。在io.js中是不同的,顶级作用域不是全局作用域,在io.js的模块中创建的对象只属于那个模块。
稳定度: 2 - 稳定文件 I/O 是由标准 POSIX 函数的简单包装提供的。通过require('fs')来使用这个模块。所有的方法都有异步和同步两种形式。异步形式的方法通常在最后一个参数上接受一个回调函数。回调函数的参数则取决于不同的方法,但是第一个参数总是为异常所保留。如果操作正常结束,那么第一个参数会是null或undefined。当同步形式的方法产生异常时,会立刻抛出。
稳定度: 2 - 稳定io.js中的许多对象触发事件:一个net.Server每次被连接时触发事件,一个fs.readStream当文件打开时触发事件。所有触发事件的对象都是events.EventEmitter的实例。你可以通过require("events");来取得这个模块。通常,事件名以驼峰字符串来命令,但是这不是严格要求的,任何字符串都是可以接受的。为了处理触发的事件,我们将函数关联到对象上。
io.js生成的错误分为两类:JavaScript错误和系统错误。所有的错误都继承于JavaScript的Error类,或就是它的实例。并且都至少提供这个类中可用的属性。当一个操作因为语法错误或语言运行时级别(language-runtime-level)的原因不被允许时,一个JavaScript error会被生成并抛出一个异常。如果一个操作因为系统级别(system-level)限制而不被允许时,一个系统错误会被生成。
稳定度: 2 - 稳定通过require('dns')来获取这个模块。这个模块包含以下两类函数:1) 使用底层操作系统工具来进行域名解析的函数,并且不需要进行任何网络活动。这类函数只有一个:dns.lookup。希望与 在其他操作系统的其他应用 执行域名解析 有相同行为时,请使用dns.lookup。下面是一个解析www.google.com的例子:var dns = require('dns');dns.lookup('www.google.
稳定度: 2 - 稳定V8 自带了一个强大的调试器,可以从外部通过 TCP 协议访问。io.js为这个调试器内建了一个客户端。要使用它的话,使用debug参数启动io.js;会出现提示符:% iojs debug myscript.js< debugger listening on port 5858connecting... okbreak in /home/indutny/Code/git/indutny/myscript.js:1 1 x = 5; 2 setTimeout(function () { 3 debugger;
稳定度: 2 - 稳定使用require('crypto')来获取这个模块。crypto模块提供了一种封装安全证书的方法,用来作为安全 HTTPS 网络和 HTTP 链接的一部分。它也提供了一个 OpenSSL hash,hamc,cipher,decipher,sign和vierify方法的包装集合。crypto.setEngine(engine[, flags])加载和设置 一些/所有 OpenSSL 功能引擎(由标记选择)。
稳定度: 2 - 稳定这个模块定义了一个控制台类,并且暴露了一个console对象。console对象是一个特殊的Console实例,它的输出被传至stdout或stderr。为了使用的方便,console被定义为一个全局对象,不需要通过require就可直接使用。consoleObject用来向stdout和stderr打印信息。与大多数浏览器提供的console对象的功能类似,只是这里输出被传至stdout或stderr。
稳定度: 2 - 稳定单个的io.js实例运行在单线程上。为了享受多核系统的优势,用户需要启动一个io.js集群来处理负载。cluster模块允许你方便地创建共享服务器端口的子进程:var cluster = require('cluster');var http = require('http');var numCPUs = require('os').cpus().length;if (cluster.isMaster) { // Fork workers. for (var i = 0; i < numCPUs;
稳定度: 2 - 稳定io.js通过child_process模块提供了三向的popen功能。可以无阻塞地通过子进程的stdin,stdout和stderr以流的方式传递数据。(注意某些程序在内部使用了行缓冲 I/O,这不会影响io.js,但是这意味你传递给子进程的数据可能不会在第一时间被消费)。可以通过require('child_process').spawn()或require('child_process').fork()创建子进程。
稳定度: 2 - 稳定纯粹的JavaScript是 Unicode 友好的,但是不能很好地处理二进制数据。当处理 TCP 流或者文件流时,操作八进制流是必要的。io.js提供了多种策略来操作,创建和使用八进制流。原始的数据被存储在Buffer类的实例中,一个Buffer类似于一个整数数组但是使用了 V8 堆之外的内存分配。一个Buffer不能被改变大小。
稳定度: 2 - 稳定本模块被用来为你的应用编写单元测试,你可以通过require('assert')来使用它。assert.fail(actual, expected, message, operator)抛出一个打印实际值actual和期望值expected的异常,使用分隔符operator隔开。assert(value[, message]), assert.ok(value[, message])测试value是否为真,它等同于assert.equal(true, !!value, message);。assert.
io.js 是 node.js 的替代品,可互换,并且几乎兼容 npm 中的所有模块。io.js 是一个社区驱动的开源项目,由 node.js 的主要贡献者发起,并且在最初的几个月内吸引了比 node.js 出现以来更多的活跃开发者。从 io.js 能得到什么?
橡皮擦clearRect()之前一直教大家怎么绘图,各种画笔各种样式,却没有教过童鞋们使用橡皮擦。Canvas 提供了clearRect()方法,就是清空指定矩形上的画布上的像素。它接受四个参数,和其他绘制矩形的方法一样——context.clearRect(x,y,w,h)。下面,我们把之前新画布(实例 9-1)上的空白矩形给擦了吧!让整个页面显示出完整的背景图片。<!DOCTYPE html><
路径方向与非零环绕原则平时我们画的图形都是规规矩矩的,那么如果我们用线条画了个抽象派作品,就像下面这图一样,童鞋们知道怎么用fill()染色呢?这里就要用到数学上的一个方法——非零环绕原则,来判断哪块区域是里面,哪块区域是外面。接下来,我们具体来看下什么是非零环绕原则。首先,我们得给图形确定一条路径,只要“一笔画”并且“不走重复路线”就可以了。
裁剪区域clip()使用Canvas绘制图像的时候,我们经常会想要只保留图像的一部分,这是我们可以使用canvas API再带的图像裁剪功能来实现这一想法。Canvas API的图像裁剪功能是指,在画布内使用路径,只绘制该路径内所包含区域的图像,不会只路径外的图像。这有点像Flash中的图层遮罩。使用图形上下文的不带参数的clip()方法来实现Canvas的图像裁剪功能。
阴影效果创建阴影效果需要操作以下4个属性:context.shadowColor:阴影颜色。context.shadowOffsetX:阴影x轴位移。正值向右,负值向左。context.shadowOffsetY:阴影y轴位移。正值向下,负值向上。context.shadowBlur:阴影模糊滤镜。数据越大,扩散程度越大。这四个属性只要设置了第一个和剩下三个中的任意一个就有阴影效果。不过通常情况下,四个属性都要设置。
关注时代Java