马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
以下是 Node.js 最常用的核心模块及 API 详解,按利用频率和紧张性分类整理:
一、高频核心模块
1. fs 文件系统
- const fs = require('fs');
- const fsPromises = require('fs').promises; // Promise 版本
- // 异步读取文件(推荐)
- fs.readFile('file.txt', 'utf8', (err, data) => {
- if (err) throw err;
- console.log(data);
- });
- // Promise 方式读取(ES6+)
- fsPromises.readFile('file.txt', 'utf8')
- .then(data => console.log(data))
- .catch(console.error);
- // 同步读取(慎用)
- const data = fs.readFileSync('file.txt', 'utf8');
- // 写文件
- fs.writeFile('new.txt', 'Hello World', err => {
- if (err) throw err;
- });
- // 目录操作
- fs.readdir('./', (err, files) => {
- console.log(files); // 获取目录文件列表
- });
- // 文件状态
- fs.stat('file.txt', (err, stats) => {
- console.log(stats.isFile()); // 是否文件
- console.log(stats.size); // 文件大小
- });
复制代码 2. path 路径处置惩罚
- const path = require('path');
- // 拼接路径(跨平台)
- const fullPath = path.join(__dirname, 'subdir', 'file.txt');
- // 解析绝对路径
- path.resolve('src', 'app.js'); // 等同于 __dirname + '/src/app.js'
- // 获取文件名/扩展名
- path.basename('/foo/bar/baz.txt'); // 'baz.txt'
- path.extname('index.html'); // '.html'
- // 路径解析
- path.parse('/home/user/file.txt');
- /* 返回:
- {
- root: '/',
- dir: '/home/user',
- base: 'file.txt',
- ext: '.txt',
- name: 'file'
- } */
复制代码 3. http 网络服务
- const http = require('http');
- // 创建服务器
- const server = http.createServer((req, res) => {
- res.writeHead(200, { 'Content-Type': 'text/plain' });
- res.end('Hello World');
- });
- server.listen(3000, () => {
- console.log('Server running on port 3000');
- });
- // 发起 HTTP 请求
- http.get('http://api.example.com', (response) => {
- let data = '';
- response.on('data', chunk => data += chunk);
- response.on('end', () => console.log(data));
- });
复制代码 二、中高频工具模块
1. events 事件触发器
- const EventEmitter = require('events');
- class MyEmitter extends EventEmitter {}
- const myEmitter = new MyEmitter();
- // 监听事件
- myEmitter.on('event', (arg) => {
- console.log('Event triggered:', arg);
- });
- // 触发事件(可传参)
- myEmitter.emit('event', { data: 123 });
- // 一次性监听
- myEmitter.once('single', () => console.log('Only once'));
复制代码 2. stream 流处置惩罚
- const fs = require('fs');
- // 读取流
- const readStream = fs.createReadStream('bigfile.txt', 'utf8');
- readStream.on('data', chunk => {
- console.log('Received chunk:', chunk.length);
- });
- readStream.on('end', () => {
- console.log('File read complete');
- });
- // 写入流
- const writeStream = fs.createWriteStream('output.txt');
- writeStream.write('Line 1\n');
- writeStream.end('Final line');
复制代码 3. util 实用工具
- const util = require('util');
- // 回调转 Promise
- const readFileAsync = util.promisify(fs.readFile);
- // 继承检查
- util.types.isDate(new Date()); // true
- // 深度对象调试
- console.log(util.inspect(obj, { depth: null }));
复制代码 三、常用全局对象
1. process 历程控制
- // 环境变量
- console.log(process.env.NODE_ENV);
- // 命令行参数
- process.argv.forEach((val, index) => {
- console.log(`${index}: ${val}`);
- });
- // 退出程序
- process.exit(1); // 非零表示异常退出
- // 标准输入输出
- process.stdin.on('data', data => {
- process.stdout.write(`You typed: ${data}`);
- });
复制代码 2. Buffer 二进制处置惩罚
- // 创建 Buffer
- const buf1 = Buffer.from('Hello');
- const buf2 = Buffer.alloc(10); // 10字节空Buffer
- // 写入数据
- buf2.write('World');
- // 转换格式
- console.log(buf1.toString('base64')); // SGVsbG8=
- console.log(Buffer.from('SGVsbG8=', 'base64').toString()); // Hello
复制代码 四、其他关键 API
1. 定时器
- // setTimeout (单次)
- const timer = setTimeout(() => {
- console.log('Delayed 1s');
- }, 1000);
- // clearTimeout(timer); // 取消
- // setInterval (循环)
- const interval = setInterval(() => {
- console.log('Every 2s');
- }, 2000);
- // clearInterval(interval);
复制代码 2. child_process 子历程
- const { exec, spawn } = require('child_process');
- // 执行 shell 命令
- exec('ls -l', (err, stdout, stderr) => {
- console.log(stdout);
- });
- // 流式处理
- const ls = spawn('ls', ['-lh', '/usr']);
- ls.stdout.on('data', data => {
- console.log(`stdout: ${data}`);
- });
复制代码 五、最佳实践要点
- 异步优先:始终优先利用异步 API(回调/Promise/async-await),制止阻塞事件循环
- 错误处置惩罚:全部回调函数必须检查 err 参数
- fs.readFile('file.txt', (err, data) => {
- if (err) {
- console.error('Read failed:', err.message);
- return;
- }
- // 正常处理
- });
复制代码 - 路径安全:利用 path.join() 替换字符串拼接,制止跨平台问题
- 流式处置惩罚:大文件操纵必须利用 Stream,防止内存溢出
- 环境区分:通过 process.env.NODE_ENV 区分开发/生产环境
六、常用第三方模块推荐
模块名用途安装命令expressWeb 框架npm install expressaxiosHTTP 客户端npm install axioslodash实用工具库npm install lodashmoment日期处置惩罚npm install momentwinston日记纪录npm install winstondotenv环境变量加载npm install dotenv 把握这些核心 API 后,可快速应对 90% 的 Node.js 开发场景。发起结合官方文档深入理解:https://nodejs.org/api/
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |