全部学科
Python全栈
python
NodeJS全栈
nodejs

NodeJS核心模块进阶专题测试

16 题 45 分钟 难度:★★

考察知识点

  • 进程与 child_process:spawn/exec/execFile/fork四种创建子进程方式、IPC进程间通信、spawn参数格式
  • 集群 (cluster) 模块:工作原理与负载均衡机制、cluster.fork与child_process.fork区别、API与事件、schedulingPolicy调度策略
  • 加密与安全 (crypto):对称加密与非对称加密应用场景、hash/HMAC/加密区别、AES加密参数、模块主要功能
  • Buffer 和流:Buffer.slice方法特点、四种基本流类型、pipe方法数据流转、Readable流暂停与流动模式
💡 参考答案在文末
判断题
1

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

A

B

2

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

A

B

单选题
3

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

A

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

B

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

C

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

D

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

4

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

A

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

B

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

C

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

D

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

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父子进程间通信(IPC),以下说法错误的是?

A

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

B

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

C

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

D

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

8

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

A

Writable

B

Readable

C

Duplex

D

Transform

9

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

A

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

B

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

C

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

D

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

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

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

A

spawn()

B

exec()

C

fork()

D

create()

E

execFile()

13

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)

填空题
14

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

15

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

16

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

参考答案
1.正确 2.正确 3.A 4.B 5.C 6.B 7.C 8.B 9.A 10.A 11.A;B;C;D;E 12.A;B;C;E 13.A;B;C;D;E 14.密钥(key);初始化向量(iv);算法名称 15.'node';['script.js'];命令 16.cluster.schedulingPolicy;cluster.SCHED_RR;cluster.SCHED_NONE
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 NodeJS性能优化专题测试
下一套试卷 → NodeJS模块系统专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码