📜  Node.js 实用程序完整参考(1)

📅  最后修改于: 2023-12-03 14:44:42.628000             🧑  作者: Mango

Node.js 实用程序完整参考

本参考文档旨在为Node.js程序员提供一个全面的实用程序参考,涵盖了常用的Node.js模块、方法、类及其使用方法。以下是具体内容:

模块
fs模块

该模块提供了文件系统操作相关的方法,常用方法如下:

  • fs.readFile(path[, options], callback):异步读取文件内容。
  • fs.writeFile(file, data[, options], callback):异步写入文件内容。

使用示例:

const fs = require('fs');

// 异步读取文件
fs.readFile('test.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

// 异步写入文件
fs.writeFile('test.txt', 'Hello World!', (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});
http模块

该模块提供了创建HTTP服务器和客户端的方法,常用方法如下:

  • http.createServer([options][, requestListener]):创建HTTP服务器并返回。
  • http.request(options[, callback]):创建HTTP客户端请求。

使用示例:

const http = require('http');

// 创建HTTP服务器
const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.write('Hello World!');
  res.end();
});

server.listen(8080, () => {
  console.log('Server running at http://localhost:8080/');
});

// 创建HTTP客户端请求
const options = {
  hostname: 'www.baidu.com',
  port: 80,
  path: '/',
  method: 'GET'
};

const req = http.request(options, (res) => {
  console.log(`statusCode: ${res.statusCode}`)
  
  res.on('data', (chunk) => {
    console.log(chunk.toString());
  });

  res.on('end', () => {
    console.log('No more data');
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.end();
path模块

该模块提供了处理文件路径相关的方法,常用方法如下:

  • path.join([...paths]):将所有字符串参数拼接成一个路径。
  • path.resolve([...paths]):将所有字符串参数解析为一个绝对路径。

使用示例:

const path = require('path');

// 拼接路径
const newPath = path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
console.log(newPath); // '/foo/bar/baz/asdf'

// 解析绝对路径
const resolvedPath = path.resolve('/foo/bar', './baz');
console.log(resolvedPath); // /foo/bar/baz
方法
setTimeout()

该方法用于延迟一段时间后执行回调函数,常用方法如下:

setTimeout(() => {
  console.log('Hello World!');
}, 2000);
setInterval()

该方法用于每隔一段时间执行一次回调函数,常用方法如下:

setInterval(() => {
  console.log('Hello World!');
}, 2000);
process.argv

该属性返回一个包含命令行参数的数组,常用方法如下:

console.log(process.argv);
console.log()

该方法用于输出日志信息,常用方法如下:

console.log('Hello World!');
EventEmitter类

该类用于实现事件监听和触发机制,常用方法如下:

  • on(eventName, listener):添加事件监听器。
  • emit(eventName[, ...args]):触发事件。

使用示例:

const EventEmitter = require('events');

class MyEmitter extends EventEmitter {}

const myEmitter = new MyEmitter();

myEmitter.on('event', (a, b) => {
  console.log(a, b);
});

myEmitter.emit('event', 'Hello', 'World!');
Stream类

该类用于实现大数据流处理机制,常用方法如下:

  • pipe(dest):将数据从可读流推送到可写流。

使用示例:

const fs = require('fs');
const readStream = fs.createReadStream('/path/to/largefile');
const writeStream = fs.createWriteStream('/path/to/newfile');

readStream.pipe(writeStream);
总结

以上为Node.js实用程序完整参考的主要内容,涉及了常用的Node.js模块、方法、类及其使用方法。对于Node.js程序员而言,本参考文档可作为一个必备的工具书。