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

NodeJS模块系统专题

专题说明

本专题面向Node.js初学者,系统讲解模块系统基础知识,从模块分类、CommonJS规范到require/module.exports用法、模块缓存机制、npm包管理及ES Modules,帮助开发者理解Node.js模块化编程的核心原理。

学习目标

  1. 理解Node.js模块系统的三大核心作用和模块分类
  2. 掌握require加载模块的路径解析规则
  3. 学会使用module.exports和exports导出模块
  4. 理解模块缓存机制和单例模式
  5. 掌握npm包管理的基本命令和package.json配置
  6. 了解ES Modules与CommonJS的区别

学习内容

本专题涵盖以下知识点:

  • 模块系统概述:模块系统作用、模块分类、加载优先级
  • CommonJS规范:require用法、module.exports导出、exports快捷方式
  • 模块缓存机制:模块单例模式、缓存原理、清除缓存
  • npm包管理:npm install命令、本地与全局安装、package.json配置
  • ES Modules:import/export语法、与CommonJS对比、值的引用与拷贝

学习建议

  1. 这是Node.js入门的核心专题,模块化是Node.js的基础架构
  2. 重点理解require路径解析规则,区分核心模块和文件模块
  3. 理解module.exports和exports的区别,避免导出错误
  4. 模块缓存机制确保单例模式,理解其对代码的影响
  5. npm是Node.js生态的核心工具,掌握基本命令
  6. ES Modules是现代标准,了解与CommonJS的切换方式

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

📝 配套习题(20 题)

1
单选题

Node.js模块系统的主要作用是什么?

A

提高代码执行速度

B

组织代码、实现作用域隔离和代码复用

C

增加内存使用效率

D

简化异步编程

2
判断题

Node.js中,模块可以分为核心模块、文件模块和第三方模块三种类型。

A

B

3
单选题

在Node.js中,当使用require('fs')require('./fs')时,分别加载的是什么模块?

A

两者都加载核心模块fs

B

前者加载核心模块fs,后者加载当前目录下的fs.js文件

C

前者加载当前目录下的fs.js,后者加载核心模块fs

D

两者都会报错

4
单选题

创建一个自定义模块,导出一个名为greet的函数,以下哪种写法是正确的?

A

export function greet() {}

B

module.exports = { greet: function() {} }

C

exports.greet = function() {}

D

B和C都正确

5
单选题

如果要让一个模块只导出一个构造函数Person,应该使用哪种方式?

A

exports = Person

B

exports.Person = Person

C

module.exports = Person

D

module.exports.Person = Person

6
填空题

在Node.js中,创建自定义模块导出一个对象,通常使用______________对象,也可以使用它的简写形式_______来添加属性。

7
判断题

自定义模块文件必须放在node_modules目录下才能被require加载。

A

B

8
单选题

CommonJS模块什么时候被执行?

A

在代码编译时执行

B

在require调用时执行,且只执行一次

C

每次访问导出值时执行

D

在程序启动时全部执行

9
多选题

在CommonJS模块中,以下哪些是模块内部的内置变量?(多选)

A

module

B

exports

C

require

D

import

10
单选题

当使用require('./module')加载一个模块时,require函数返回的是什么?

A

模块文件的路径

B

模块文件的内容字符串

C

module.exports导出的值

D

一个Promise对象

11
填空题

使用require加载Node.js核心模块时,应该使用_______函数,参数直接传入模块名称如'fs'、'http'。要加载当前目录下的myModule.js文件,应该传入路径__________

12
单选题

fs模块中,同步方法和异步方法的主要区别是什么?

A

同步方法更安全

B

异步方法有回调函数,同步方法返回结果

C

同步方法只能在服务器端使用

D

异步方法会阻塞程序执行

13
单选题

执行npm install express命令后,express包会被安装到哪里?

A

全局目录

B

当前项目的node_modules目录

C

当前目录的根目录

D

npm的缓存目录

14
单选题

package.json文件的主要作用是什么?

A

存储项目源代码

B

存储项目的元信息和依赖配置

C

存储npm的配置信息

D

存储Node.js的运行环境配置

15
单选题

当同一个模块被多次require时,会发生什么?

A

模块每次都会重新执行并返回新对象

B

模块只执行一次,后续require返回缓存的对象

C

第二次require会报错

D

每次require返回的对象互不影响

16
单选题

当执行require('lodash')且当前目录没有node_modules时,Node.js会如何查找lodash模块?

A

直接报错"模块未找到"

B

只在当前目录查找

C

从当前目录向上逐级查找node_modules目录

D

直接在全局npm目录查找

17
单选题

ES Modules与CommonJS的主要区别之一是什么?

A

ES Modules只能在服务器端使用

B

ES Modules使用import/export语法,CommonJS使用require/module.exports

C

CommonJS支持异步加载

D

ES Modules导出的是值的拷贝

18
单选题

ES Modules导出的值是什么类型?

A

值的深拷贝

B

值的浅拷贝

C

值的引用(绑定)

D

JSON字符串

19
单选题

以下哪种ES Modules导入语法是正确的?

A

import module from './module'

B

import module from './module.js'

C

require('./module.js')

D

import module = require('./module.js')

20
填空题

ES Modules使用____________关键字进行模块导入导出,CommonJS使用_______module.exports。ES Modules导出的是值的______,CommonJS导出的是值的______

← 上一个专题 NodeJS核心模块进阶
下一个专题 → NodeJS环境搭建与运行

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

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

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

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