Node.js是一个基于Chrome V8引擎的JavaScript运行时,它允许开发者使用JavaScript来编写后端应用程序。Node.js提供了大量的内置模块来处理各种任务,这些模块涵盖了从文件操作到网络通信的各个方面。接下来,将介绍一些常见的Node.js模块以及它们的功能。
fs模块提供了文件系统相关的API,包括读取/写入文件、创建和删除目录、文件权限管理等。可以使用require('fs')
来引入该模块。
读取/写入文件、创建和删除目录、文件权限管理
const fs = require('fs');
// 读取文件
fs.readFile('file.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
// 写入文件
fs.writeFile('file.txt', 'Hello World!', (err) => {
if (err) throw err;
console.log('File was written');
});
http模块提供了创建HTTP服务器和客户端的API,可以使用require('http')
来引入该模块。
创建HTTP服务器和客户端
const http = require('http');
// 创建HTTP服务器
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World!\n');
}).listen(8080, () => {
console.log('Server running at http://localhost:8080/');
});
// 创建HTTP客户端
const req = http.request('http://www.example.com/', (res) => {
console.log(`Status code: ${res.statusCode}`);
res.on('data', (chunk) => {
console.log(chunk.toString());
});
});
req.end();
path模块提供了处理文件路径的API,可以使用require('path')
来引入该模块。
处理文件路径
const path = require('path');
const filePath = '/home/user/Documents/file.txt';
console.log(path.basename(filePath)); // file.txt
console.log(path.dirname(filePath)); // /home/user/Documents
console.log(path.extname(filePath)); // .txt
console.log(path.resolve(filePath, '../images')); // /home/user/images
crypto模块提供了加密和解密的API,可以使用require('crypto')
来引入该模块。
加密和解密
const crypto = require('crypto');
const plaintext = 'Hello World!';
const secretKey = 'mySecretKey';
const hash = crypto.createHmac('sha256', secretKey)
.update(plaintext)
.digest('hex');
console.log(hash); // 1b730f23ce551193aeea6cb10a97dab3ad6af4ba248e7be9a97166fdd4e94660
os模块提供了与操作系统相关的API,包括获取操作系统平台、CPU架构、内存使用情况等信息。可以使用require('os')
来引入该模块。
获取操作系统平台、CPU架构、内存使用情况
const os = require('os');
console.log(os.platform()); // linux
console.log(os.arch()); // x64
console.log(os.totalmem()); // 34204930048
querystring模块提供了处理查询字符串的API,可以使用require('querystring')
来引入该模块。
处理查询字符串
const querystring = require('querystring');
const params = {name: 'John Doe', age: 30};
const queryString = querystring.stringify(params);
console.log(queryString); // name=John%20Doe&age=30
const parsedParams = querystring.parse(queryString);
console.log(parsedParams); // { name: 'John Doe', age: '30' }
以上是Node.js中一些常见的模块,它们提供了丰富的API,帮助我们更轻松地处理各种任务。当然,Node.js还有许多其他有用的模块,可以根据需要查阅官方文档进行学习和使用。