全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📝 1 篇文章 16 道配套习题

NodeJS核心模块进阶

专题说明

本专题深入学习Node.js核心模块的高级特性,涵盖进程管理、集群部署、加密安全和流处理四大核心模块的进阶应用。

学习目标

  1. 掌握child_process模块四种创建子进程方法的区别与应用场景
  2. 理解cluster模块的多进程架构和负载均衡机制
  3. 学会crypto模块的加密、哈希、HMAC及密钥生成技术
  4. 精通Buffer操作和Stream流的四种类型及pipe机制

学习内容

本专题包含16道精选题目,覆盖以下知识点:

  • 进程与child_process:spawn、exec、execFile、fork的区别与IPC通信
  • 集群模块:Worker管理、端口共享、负载均衡策略
  • 加密与安全:对称/非对称加密、哈希算法、HMAC签名
  • Buffer和流:Buffer操作、四种流类型、pipe与背压机制

学习建议

  1. 先学习基础专题,再进阶本专题
  2. 重点理解进程间通信和端口共享原理
  3. 加密模块需配合实际项目练习
  4. 流处理是Node.js核心特性,务必深入理解

📝 发现内容有误?点击此处直接编辑

📝 配套习题(16 题)

1
单选题

关于Node.js child_process模块中四种创建子进程方法的区别,以下说法正确的是?

A

spawn适合执行大量数据输出的命令,exec适合执行简单命令并获取完整输出

B

execFile只能执行Node.js文件,不能执行其他脚本

C

fork创建的子进程无法与父进程通信

D

spawn和exec都支持shell语法解析,行为完全相同

2
单选题

关于Node.js父子进程间通信(IPC),以下说法错误的是?

A

fork创建的子进程自动建立IPC通道,可以通过send()方法通信

B

spawn创建的子进程默认没有IPC通道,需要设置stdio选项才能通信

C

IPC通信可以传递任意JavaScript对象,包括函数和DOM元素

D

父进程可以通过child.on('message')监听子进程发送的消息

3
多选题

Node.js的child_process模块提供了以下哪些创建子进程的方法?

A

spawn()

B

exec()

C

fork()

D

create()

E

execFile()

4
填空题

使用child_process.spawn()执行命令node script.js,正确的调用格式是:spawn(______, _____________)。第一个参数是______,第二个参数是________

5
单选题

关于Node.js cluster模块的工作原理,以下说法正确的是?

A

cluster模块通过创建多个Node.js进程,每个进程独立运行完整的V8引擎和事件循环

B

cluster的负载均衡采用轮询算法,所有Worker进程的平均负载相同

C

cluster模块会将请求分发到不同的Worker,Worker之间共享同一个端口

D

Master进程负责处理所有HTTP请求,然后将请求转发给Worker处理

6
单选题

cluster.fork()与child_process.fork()的主要区别是什么?

A

cluster.fork()只能创建HTTP服务器子进程,child_process.fork()可以创建任意子进程

B

cluster.fork()允许子进程共享端口监听,child_process.fork()不支持端口共享

C

cluster.fork()创建的子进程没有IPC通道,child_process.fork()有IPC通道

D

cluster.fork()是同步方法,child_process.fork()是异步方法

7
多选题

Node.js cluster模块提供了以下哪些API和事件?

A

cluster.fork():创建Worker进程

B

cluster.on('exit'):监听Worker退出事件

C

cluster.workers:获取所有活跃Worker对象

D

cluster.disconnect():断开所有Worker连接

E

cluster.isPrimary:判断是否是主进程(新API)

8
填空题

在cluster模块中,可以通过设置________________________来控制负载均衡策略。使用________________表示轮询调度,使用__________________表示让操作系统决定。获取CPU核心数量的方法是________________________

9
单选题

以下关于Node.js crypto模块加密算法的说法,哪个是正确的?

A

AES算法是对称加密,加密和解密使用相同的密钥,适合大数据量加密

B

RSA是非对称加密,加密速度快,适合实时数据传输加密

C

哈希算法(如SHA256)可以用于数据加密,加密后可以解密还原原始数据

D

使用crypto加密数据时,密钥长度越长越好,不需要考虑性能影响

10
单选题

关于crypto模块中的hash、HMAC和加密的区别,以下说法正确的是?

A

hash和HMAC都是单向算法,但HMAC需要密钥,安全性更高

B

hash算法可以用于加密敏感数据,因为输出是固定长度

C

加密算法的输出长度固定,与输入数据长度无关

D

HMAC可以替代加密,因为它同时使用了密钥和哈希算法

11
多选题

Node.js的crypto模块提供以下哪些主要功能?

A

createHash():创建哈希对象

B

createCipheriv():创建加密对象

C

createHmac():创建HMAC对象

D

generateKeyPairSync():生成密钥对

E

randomBytes():生成随机字节

12
填空题

使用crypto模块进行AES加密时,需要三个关键参数:_______________________________。密钥用于加密数据,IV用于增加加密的随机性。使用____________________方法可以生成安全的随机密钥和IV。

13
单选题

关于Buffer.slice()方法,以下说法正确的是?

A

Buffer.slice()返回一个新的Buffer副本,修改新Buffer不影响原Buffer

B

Buffer.slice()返回原Buffer的视图,修改会影响原Buffer

C

Buffer.slice()已废弃,应该使用Buffer.subarray()替代

D

Buffer.slice()可以动态扩展Buffer的大小

14
单选题

Node.js stream模块提供了四种基本的流类型,其中用于读取数据的流是?

A

Writable

B

Readable

C

Duplex

D

Transform

15
判断题

流的pipe()方法可以将可读流的数据自动传输到可写流,同时处理数据流速控制和错误处理。

A

B

16
判断题

Readable流有两种工作模式:暂停模式和流动模式。在暂停模式下,数据不会被自动读取,需要手动调用read()方法获取数据。

A

B

← 上一个专题 NodeJS核心模块基础
下一个专题 → NodeJS模块系统专题

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库