¿Cómo definir variables globales en nodejs?
Use global para definir variables globales en nodejs. También se puede acceder a las variables definidas en los archivos importados. Por ejemplo, a.js
global.xxx = 'xxx'
require('xxx.js')
xxx.js también puede acceder a las variables. En el navegador, las variables globales que definimos están todas en la ventana, nodejs es global , se deben evaluar diferentes entornos, por lo que apareció una globalThis
variable global en ECMAScript 2020, que cambiará automáticamente a global en el entorno nodejs, y es muy conveniente que el entorno del navegador cambie automáticamente de ventana
Acerca de otras API globales
Dado que no hay DOM ni BOM en nodejs, a excepción de estas API, básicamente se pueden usar otras API de ECMAscript
Por ejemplo
setTimeout setInterval Promise Math console Date fetch(node v18) 等...
Estas API se pueden usar normalmente
API global integrada de nodejs
__dirname
目录
Representa la ruta absoluta del módulo actual.
__filename
Representa 文件
la ruta absoluta del módulo actual, incluidos el nombre y la extensión del archivo.
require module
La importación de módulos y la exportación de módulos se han discutido en detalle en el capítulo anterior.
process
process.argv
: Esta es una matriz que contiene argumentos de línea de comando. El primer elemento es la ruta de ejecución de Node.js, el segundo elemento es la ruta del archivo JavaScript que se está ejecutando actualmente y los siguientes elementos son los parámetros de la línea de comandos pasados al script.process.env
: Este es un objeto que contiene las variables de entorno actuales. Puedeprocess.env
acceder y manipular las variables de entorno mediante.process.cwd()
: este método devuelve la ruta del directorio de trabajo actual.process.on(event, listener)
: Se utiliza para registrar detectores de eventos. Puedeprocess.on
escuchar eventos comoexit
yuncaughtException
ejecutar la función de devolución de llamada correspondiente cuando ocurra el evento.process.exit([code])
: se usa para salir del proceso actual de Node.js. Puede proporcionar un código de salida opcional como argumento.process.pid
: Esta propiedad devuelve el PID (ID de proceso) del proceso actual.
Estas son solo process
algunas de las propiedades y métodos de objetos comúnmente utilizados, hay muchos otros que se pueden usar para monitorear procesos, configurar el manejo de señales, enviar mensajes IPC, etc.
需要注意的是,process
对象是一个全局对象,可以在任何模块中直接访问,无需导入或定义。
Buffer
-
创建
Buffer
实例:Buffer.alloc(size[, fill[, encoding]])
: 创建一个指定大小的新的Buffer
实例,初始内容为零。fill
参数可用于填充缓冲区,encoding
参数指定填充的字符编码。Buffer.from(array)
: 创建一个包含给定数组的Buffer
实例。Buffer.from(string[, encoding])
: 创建一个包含给定字符串的Buffer
实例。
-
读取和写入数据:
buffer[index]
: 通过索引读取或写入Buffer
实例中的特定字节。buffer.length
: 获取Buffer
实例的字节长度。buffer.toString([encoding[, start[, end]]])
: 将Buffer
实例转换为字符串。
-
转换数据:
buffer.toJSON()
: 将Buffer
实例转换为JSON对象。buffer.slice([start[, end]])
: 返回一个新的Buffer
实例,其中包含原始Buffer
实例的部分内容。
-
其他方法:
Buffer.isBuffer(obj)
: 检查一个对象是否是Buffer
实例。Buffer.concat(list[, totalLength])
: 将一组Buffer
实例或字节数组连接起来形成一个新的Buffer
实例。
请注意,从Node.js 6.0版本开始,Buffer
构造函数的使用已被弃用,推荐使用Buffer.alloc()
、Buffer.from()
等方法来创建Buffer
实例。
Buffer
类在处理文件、网络通信、加密和解密等操作中非常有用,尤其是在需要处理二进制数据时