【Node.js】全局变量和全局 API

node 环境中没有 dom 和 bom ,此外 es 基本上都是可以正常使用的。

如果一定要使用 dom 和bom,可以借助第三方库 jsdom 帮助我们实现操作。npm i jsdom

实例:

const fs = require('node:fs')
const {JSDOM} = require('jsdom')

const dom = new JSDOM(`<!DOCTYPE html><div id='app'></div>`)

const document = dom.window.document

const window = dom.window

fetch('https://api.thecatapi.com/v1/images/search?limit=6&page=2')
    .then(res => res.json())
    .then(data => {
        const app = document.getElementById('app')
        data.forEach(item => {
            const img = document.createElement('img')
            img.src = item.url
            img.style.width = '200px'
            img.style.height = '200px'
            app.appendChild(img)
        })
        //  dom.serialize() 为html文档的字符串
        fs.writeFileSync('./index.html', dom.serialize())
    })

这样就会经过我们的操作dom,bom,生成 index.html 。

nodejs 全局变量

global.a = 1将变量a挂载带全局,但是要注意代码执行的顺序,如果是先引入了其他模块,在引入之后的代码定义了全局变量,那么这样是无法在刚刚引入的外部模块中使用定义的全局变量的。

global.a = 1
require('./child')

child 中使用了a,如果顺序反过来,则不可以使用,为undefined。

globalThis这个对象,会根据环境,自己判断指向的是 window 还是 global。实现跨平台。

nodejs 内置全局API

__dirname

它表示当前模块(文件夹)的所在目录的绝对路径(执行脚本的目录)

__filename

它表示当前模块文件的绝对路径,包括文件名和文件扩展名(精确到某个文件)

require module

引入模块和模块导出

process

process.argv: 这是一个包含命令行参数的数组。第一个元素是Node.js的执行路径,第二个元素是当前执行的JavaScript文件的路径,之后的元素是传递给脚本的命令行参数。

在这里插入图片描述

process.env: 这是一个包含当前环境变量的对象。可以通过process.env访问并操作环境变量。可以修改,但是修改只在当前进程生效,不会真正影响到系统的环境变量。

cross-env 是 跨平台设置和使用环境变量的一个库。

"dev": "cross-env NODE_ENV=dev node index.js",
"build": "cross-env NODE_ENV=prod node index.js",
console.log(prosess.env.NODE_ENV == 'dev' ? '开发环境' : '生产环境')

process.cwd(): 这个方法返回当前工作目录的路径。

process.on(event, listener): 用于注册事件监听器。可以使用process.on监听诸如exit、uncaughtException等事件,并在事件发生时执行相应的回调函数。

process.exit([code]): 用于退出当前的Node.js进程。可以提供一个可选的退出码作为参数。

process.kill(process.pid):用于杀死一个进程。其中 pid 可以使用 process.pid 获取。

process.pid: 这个属性返回当前进程的PID(进程ID)。

以上上常用的一些方法,process对象是一个全局对象,可以在任何模块中直接访问,无需导入或定义。

相关推荐

  1. Node.js_基础知识(全局变量

    2024-03-24 07:00:01       29 阅读
  2. 数据类型局部/全局变量

    2024-03-24 07:00:01       29 阅读
  3. 055、Python 关于全局变量局部变量

    2024-03-24 07:00:01       10 阅读
  4. 在 C++ 中局部变量全局变量

    2024-03-24 07:00:01       43 阅读
  5. C语言变量全局变量能否重名?

    2024-03-24 07:00:01       35 阅读
  6. Thymeleaf 全局变量

    2024-03-24 07:00:01       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 07:00:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 07:00:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 07:00:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 07:00:01       20 阅读

热门阅读

  1. 算法提高篇基础算法第一章 - 贪心算法

    2024-03-24 07:00:01       13 阅读
  2. 计算机二级真题讲解每日一题:《format格式化》

    2024-03-24 07:00:01       16 阅读
  3. Android单片机硬件通信《GPIO通信》

    2024-03-24 07:00:01       12 阅读
  4. 设计模式(行为型设计模式——模板方法模式)

    2024-03-24 07:00:01       17 阅读
  5. Unity与鼠标相关的事件(自己记忆用)

    2024-03-24 07:00:01       16 阅读
  6. 179. 最大数

    2024-03-24 07:00:01       15 阅读
  7. css如何通过媒体查询功能实现界面的自适应

    2024-03-24 07:00:01       15 阅读
  8. 合并排序算法的时间复杂度是多少?

    2024-03-24 07:00:01       17 阅读
  9. 排序算法之冒泡排序

    2024-03-24 07:00:01       20 阅读
  10. string的equals和object的equals一样吗?

    2024-03-24 07:00:01       19 阅读