四、 Cluster

1、简介

在介绍 Cluster 之前。我们需要知道 node的 一些基本特性,比如说

都知道的 nodejs最大的特点就是单进程、无阻塞运行,并且是异步事件驱动的。

那么随之而来的最大的缺点也展现出来了,如在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟。

如何来解决这个缺点呐?

那么 Cluster 就是来处理这个问题的

2、函数

const cluster = require('cluster');

3、例子

const cluster = require('cluster');
const http = require('http');
const numCpus = require('os').cpus().length; if (cluster.isMaster) {
for (var i = 0; i < numCpus; i++) {
cluster.fork();
}
cluster.on('listening', (worker, address) => {
// for (item in address) {
// console.log(item); // 查看address 对象的 属性
// }
console.log('A worker with #' + worker.id + ' is now connected to ' + address.addressType + ':' + address.port + address.fd);
});
} else {
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello');
}).listen(8000);
}

4、运行例子

D:\0\nodejs>node cluster.js
A worker with #1 is now connected to 4:8000undefined
A worker with #2 is now connected to 4:8000undefined
A worker with #3 is now connected to 4:8000undefined
A worker with #4 is now connected to 4:8000undefined
五、 Command

1、简介

Node.js自带了各种各样的命令行参数。这些参数显示了内置的调试接口、执行脚本的多种方式和其它有帮助的运行时选项

2、函数

我们列举几个我们常见的 参数

-v, –version ( 打印node的版本信息。)

-h, –help ( 打印node命令行参数。该选项的输出不会比本文档更详尽 )

-e, –eval “script”

-p, –print “script”

-c, –check

-i, –interactive

3、例子

node -v

4、运行例子

node -v
-------------------------------
C:\Users\Administrator>node -v
v6.3.0
-------------------------------
六、 Console (控制台对象)

1、简介

控制台对象console是Node.js中的Global全局对象之一,用于打印标准输出stdout和标准错误stderr。全局对象在所有模块中都可以使用,console对象也不例外,无需require引用,即可直接使用。

2、函数

  1. 打印标准输出 console.log([data][, ...])、console.info([data][, ...])
  2. 打印标准错误 console.error([data][, ...])、console.warn([data][, ...])
  3. 打印object到stdout中 将对象格式化后打印到stdout中
  4. 计时器功能, console.time(label)、console.timeEnd(label)
  5. 打印栈跟踪到stderr: console.trace(message[, ...])
  6. 断言表达式:console.assert(value[, message][, ...])

3、例子

const a = 123;
console.log(a); // 123 console.log('a: %d', a); // a: 123 console.info(a); // 同 console.log console.warn();
console.error(); // Same as console.log but prints to stderr. // console.dir(global); // 打印 node 全局对象 console.time('allTime');
for (var i = 0; i < 10; i++) {
console.log(i);
};
console.timeEnd('allTime'); console.trace('error'); console.assert(1<0, '%d不小于%d', 1, 0); console.assert(1>0, '%d不小于%d', 1, 0);

4、运行例子

node console.js
-------------------------------
123
a: 123
123 0
1
2
3
4
5
6
7
8
9
allTime: 1.530ms
Trace: error
at Object.<anonymous> (E:\2\NodeJS\Api\console.js:19:9)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.runMain (module.js:575:10)
at run (bootstrap_node.js:352:7)
at startup (bootstrap_node.js:144:9)
at bootstrap_node.js:467:3 -------------------------------

七、Crypto (加密模块)

1、简介

Node.js 利用 OpenSSL库来实现它的加密技术,这是因为OpenSSL已经是一个广泛被采用的加密算法。它包括了类似MD5 or SHA-1 算法,这些算法你可以利用在你的应用中。

2、函数

  1. hash算法 crypto.createHash()
  2. HMAC(keyed-Hash Message Authentication Code)加密 crypto.createHmac(algorithm, key)

3、例子

const crypto = require('crypto');
const md5 = crypto.createHash('md5'); md5.update('foo'); const res = md5.digest('hex'); console.log(res); // acbd18db4cc2f85cedef654fccc4a4d8
1.  crypto.createHash('md5').update() ;
2. crypto.createHash('md5').digest('hex') ;

这里我们生成了一个md5的hash实例,然后直接运行 md5.digest(); 出现了乱码,因为它默认返回的是2进制的数据,然后我们接着 md5.digest(‘hex’); 期望以16进制的形式打印md5值,但是抛出异常了。

也就是说一旦md5.digest();这个方法被调用了,hash 对象就被清空了是不能被重用的。当然我们可以利用base64格式打印出md5字符串。

对于hash.update()方法是有记忆功能的。

4、运行例子

node -v
-------------------------------
E:\2\NodeJS\Api>node crypto.js
acbd18db4cc2f85cedef654fccc4a4d8
-------------------------------
八、 Debugger

Node.js API 初解读(二)的更多相关文章

  1. Node.js API 初解读(一)

    Node.JS API 初解读 Version: NodeJs v6.2.0 一. Assert 1.简介 Assert模块主要用于断言.如果表达式不符合预期,就抛出一个错误. 该模块用于编写程序的单 ...

  2. Node.js API 初解读(三)

    目录 Node.JS API 初解读三 Node.JS API 初解读三 Version: NodeJs v6.2.0 一. DNS (Domain Name Server) [域名服务器] 1.简介 ...

  3. node.js(API解读) - process (http://snoopyxdy.blog.163.com/blog/static/60117440201192841649337/)

    node.js(API解读) - process 2011-10-28 17:05:34|  分类: node |  标签:nodejs  nodejsprocess  node.jsprocess  ...

  4. Node.js API快速入门

    Node.js API 快速入门 一.事件EventEmitter const EventEmitter = require('events'); class MyEmitter extends Ev ...

  5. Node.js API

    Node.js v4.4.7 Documentation(官方文档) Buffer Prior to the introduction of TypedArray in ECMAScript 2015 ...

  6. Node.js 蚕食计划(二)—— 使用 http 模块搭建 Web 服务器

    Node.js 开发的目的就是为了用 JavaScript 编写 Web 服务器程序 这次就来介绍用 http 模块搭建服务器 一.项目构建 每个 Node 程序都可以看作一个模块,而每个模块都应该有 ...

  7. node.js api文档生成

    ApiDoc官网地址为:http://apidocjs.com/在Java中有Swagger及其升级版的Swagger2+Springfox自动生成接口管理文档.而在Node.js中则可以利用ApiD ...

  8. node.js学习笔记(二)——回调函数

    Node.js 异步编程的直接体现就是回调. 那什么是回调呢?回调指的是将一个函数作为参数传递给另一个函数,并且通常在第一个函数完成后被调用.需要指明的是,回调函数不是由该函数的实现方直接调用,而是在 ...

  9. node.js + express 初体验【hello world】

    [node.js]  一个神奇的XX 呵呵 :) 不知道怎么形容他才好! [express] 是node.js 开发web应用程序的框架 开发环境:XP 大家共同进步吧 :) 一:前期准备: 1:下载 ...

随机推荐

  1. shell 脚本之判断语句 if 详解

    使用 Linux 系统这么长时间,对 shell 脚本也算是比较熟悉.其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能.这次抽时间好好总结一下 shell 方面的知识,综合的再学习一下 ...

  2. 严重: Exception loading sessions from persistent storage Java.io.EOFException

    tomcat启动时报此异常,但web页均能正常运行:对程序影响不大. /*具体原因时tomcat--work--(你当前运行的工程名)--session.ser*/删除即可解决 分析: EOFExce ...

  3. android Broadcast广播消息代码实现

    我用的是Fragment , 发送写在一个类中,接收写在另外一个类的内部类中.代码动态实现注册. 代码: myReceiver = new zcd.netanything.MyCar.myReceiv ...

  4. gridview安卓实现单行多列横向滚动

    <GridLayout android:layout_width="match_parent" android:layout_height="match_paren ...

  5. 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程

    之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...

  6. 【原】移动web资源整理

    2013年初接触移动端,简单做下总结,首先了解下移动web带来的问题 设备更新换代快——低端机遗留下问题.高端机带来新挑战 浏览器厂商不统一——兼容问题多 网络更复杂——弱网络,页面打开慢 低端机性能 ...

  7. BZOJ 3237: [Ahoi2013]连通图

    3237: [Ahoi2013]连通图 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1161  Solved: 399[Submit][Status ...

  8. FineUI(专业版)公测版发布(这速度,真TM快!)

    经过近一年的筹备.编码和测试,FineUI(专业版)公测版终于和大家见面了!现在就来体验一下专业版飞一般的速度吧:http://fineui.com/demo_pro/FineUI(专业版)首页:ht ...

  9. 【已更新】【原创】Chrome53 最新版惊现无厘头卡死 BUG!

    发现问题 今天有客户向我们反馈了一个BUG:一个页面在IE.FireFox.Chrome52中能正常运行,但是在最新版的Chrome53中显示不了??? 习惯性的,我们需要客户提供页面在浏览器中的HT ...

  10. C#网络编程——IPHostEntry

    using System; using System.Net; namespace study { class IPHostEntrySample { public static void func( ...