nodejs有哪些全局对象,怎么用
# 是什么
在浏览器中全局对象是window, 而在nodejs环境中是global
nodejs中变量都是当前模块的,外面变量可以通过require引用,exports暴露
# 有哪些
全局对象分成两类:
- 真正的全局变量
- 模块级别的全局变量
# 全局级别
- global
- process
- console
- setTimeout/setInterval/clearTimeout/clearInterval
- Buffer
# 模块级别
- exports
- require
- module
- __dirname
- __filename
# 怎么用
- global
console.log(process === global.process)
- process
node code/fe-engin/node/process.js fang 10 down
// index.js
process.argv.forEach((val, index) => {
console.log(`${index}: ${val}`);
});
输出结果
0: /usr/local/bin/node
1: /Users/code/fe-engin/node/process.js
2: fang
3: 10
4: down
Type ".help" for more information.
> process
process {
version: 'v12.16.3',
versions: {
node: '12.16.3',
v8: '7.8.279.23-node.35',
uv: '1.34.2',
zlib: '1.2.11',
brotli: '1.0.7',
ares: '1.16.0',
modules: '72',
nghttp2: '1.40.0',
napi: '5',
llhttp: '2.0.4',
http_parser: '2.9.3',
openssl: '1.1.1g',
cldr: '36.0',
icu: '65.1',
tz: '2019c',
unicode: '12.1'
},
arch: 'x64',
platform: 'darwin',
release: {
name: 'node',
lts: 'Erbium',
sourceUrl: 'https://nodejs.org/download/release/v12.16.3/node-v12.16.3.tar.gz',
headersUrl: 'https://nodejs.org/download/release/v12.16.3/node-v12.16.3-headers.tar.gz'
- console 和浏览器无异
- setTimeout/setInterval/clearTimeout/clearInterval 定时器类
- Buffer
可以处理二进制以及非Unicode编码的数据
- exports
console.log(exports) // {}
- require
[Function: require] {
resolve: [Function: resolve] { paths: [Function: paths] },
main: Module {
id: '.',
path: '/Users/###/code/fe-engin/node',
exports: {},
parent: null,
filename: '/Users/###/code/fe-engin/node/exports.js',
loaded: false,
children: [],
paths: [
'/Users/###/code/fe-engin/node/node_modules',
'/Users/###/code/fe-engin/node_modules',
'/Users/###/code/node_modules',
'/Users/###/node_modules',
'/Users/###/Desktop/fangdown/github/node_modules',
'/Users/###/Desktop/fangdown/node_modules',
'/Users/###/Desktop/node_modules',
'/Users/###/node_modules',
'/Users/node_modules',
'/node_modules'
]
},
extensions: [Object: null prototype] {
'.js': [Function],
'.json': [Function],
'.node': [Function]
},
cache: [Object: null prototype] {
'/Users/###/code/fe-engin/node/exports.js': Module {
id: '.',
path: '/Users/###/code/fe-engin/node',
exports: {},
parent: null,
filename: '/Users/###/code/fe-engin/node/exports.js',
loaded: false,
children: [],
paths: [Array]
}
}
}
- module
Module {
id: '.',
path: '/Users/###/code/fe-engin/node',
exports: {},
parent: null,
filename: '/Users/###/code/fe-engin/node/exports.js',
loaded: false,
children: [],
paths: [
'/Users/###/code/fe-engin/node/node_modules',
'/Users/###/code/fe-engin/node_modules',
'/Users/###/code/node_modules',
'/Users/###/node_modules',
'/Users/###/Desktop/fangdown/github/node_modules',
'/Users/###/Desktop/fangdown/node_modules',
'/Users/###/Desktop/node_modules',
'/Users/###/node_modules',
'/Users/node_modules',
'/node_modules'
]
}
- __dirname
/Users/###/Desktop/fangdown/github/app-blog/code/fe-engin/node
- __filename
/Users/###/Desktop/fangdown/github/app-blog/code/fe-engin/node/exports.js
# FAQ
上次更新: 2021/12/19, 18:05:42