四、 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. pitch yaw roll是什么

    虚拟现实 三维空间的右手笛卡尔坐标如图1所示. 图1 在航空中,pitch, yaw, roll如图2所示. pitch是围绕X轴旋转,也叫做俯仰角,如图3所示. yaw是围绕Y轴旋转,也叫偏航角,如 ...

  2. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  3. Java程序设计求出岁数

    题目:我年龄的立方是个4位数.我年龄的4次方是个6位数.这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次,求出我今年几岁. 直接拷贝运行就可以了. public class Age { ...

  4. Spring AspectJ基于注解的AOP实现

    对于AOP这种编程思想,很多框架都进行了实现.Spring就是其中之一,可以完成面向切面编程.然而,AspectJ也实现了AOP的功能,且实现方式更为简捷,使用更加方便,而且还支持注解式开发.所以,S ...

  5. SpringMVC注解开发初步

    一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在 ...

  6. [LeetCode] Range Sum Query - Mutable 区域和检索 - 可变

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  7. [LeetCode] Combinations 组合项

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...

  8. C#扩展方法

    扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法就相当于一个马甲,给一个现有类套上,就可以为这个类添加其他方法了. 马甲必须定义为stati ...

  9. Java递归目录结构

    import java.io.File; public class FileTree { public static void main(String[] args) { printFileTree( ...

  10. cosbench 压测RGW生产环境

    配置信息: 使用  2个万兆网卡的RGW主机,并用OSPF做高可用和负载均衡.  Ceph OSD集群 有21Node (万兆网卡+ 12个4T SATA机械硬盘) 测试VM配置: 使用在使用VXLA ...