您现在的位置是:首页 > Javascript
当前栏目
Node.js的内置模块说明!
2023-03-20 14:56:42 时间
一、Node.js 内置模块(Module)
Node.js 内置模块是 Node.js
的顶层API,提供给了访问网络、操作文件等核心功能,npm 里面的模块库就是基于这些顶层 API 的进一步封装,实现更便捷的功能。
1、查看内置模块
创建 example.js 文件,复制下面代码到文件,终端运行 node example.js
,就可以看到 Node.js 内置的所有模块名。
// example.js
const m = require('module');
console.log("
************************");
console.log("require('module') :", m);
const builtin = m.builtinModules;
console.log("
************************");
console.log("builtin :", builtin);
2、内置模块可以被修改,但不能新增和删除
用内置模块 fs
作为测试对象,通过修改、删除、新增其内容,之后进行同步,最后用动态导入的方式,导入新的 fs
,进行前后对比。查看方式:创建 example.js
文件,复制下面内容到文件,终端运行 node example.js
看结果,如果 assert 的断言有错误,会抛出错误,否则没有任何输出。
// example.js
const fs = require('fs');
const assert = require('assert');
const { syncBuiltinESMExports } = require('module');
function newAPI() {
// ...
}
// 修改
fs.readFile = newAPI;
// 删除
delete fs.readFileSync;
// 新增
fs.newAPI = newAPI;
// 同步
syncBuiltinESMExports();
import('fs').then((esmFS) => {
// 修改的内容被同步了
assert.strictEqual(esmFS.readFile, newAPI);
// 删除操作确实成功了
assert.strictEqual('readFileSync' in fs, false);
// 删除的内容,在新的模块中依然存在
assert.strictEqual('readFileSync' in esmFS, true);
// 新增内容,在新模块中不存在
assert.strictEqual(esmFS.newAPI, undefined);
});
二、参考文档
相关文章
- Lyft设计总监:移动端响应式设计的高效方法
- 快速提升 UI 设计效果的 6 个小技巧
- H5 移动端调试全攻略
- 如何打造一个优秀的C端组件库?来看贝壳设计的实战案例!
- 帮 UI 设计师极大提升效率的10款 Figma 插件
- iOS 15细节曝光:锁屏UI迎全新外观、还有健康功能
- 大厂分析!UI、交互和产品经理三个岗位的优势和困境
- 10个实现炫酷UI设计效果的CSS生成工具
- Web安全测试必须注意的五个方面
- 《Angular从零到一》导读
- Clojure世界:XML处理
- Ambari 架构(一)Ambari 介绍
- Markdown+Pandoc→HTML幻灯片速成
- 《Flink官方文档》Batch Examples(二)
- 《Spring Boot官方文档》18. 使用 @SpringBootApplication注解
- Spring Boot 集成 FreeMarker 详解案例
- 《Spring Boot官方文档》16. 自动配置
- 《OSGI官方指南》首页
- 《Log4j 2官方文档》 Configuration Syntax
- 当前最火的web开发技术