内置对象
yuhuo2022-08-18JavaScriptNodeJs
global
全局对象,类似浏览器环境中的 window 对象
// 自定义全局属性
global.abc = 1;
// 获取全局属性
console.log(global.abc);
__dirname
当前文件所在文件夹的绝对路径
// D:\Workspace\Web_yuhuo\Practice\topic\nodejs
console.log(__dirname);
require
导入其他模块
var math = require("math");
解析当前路径下默认导入的文件路径
// 返回:D:\Workspace\Web_yuhuo\practice\node_modules\sass\sass.node.js
path.resolve("D:\Workspace\Web_yuhuo\practice\node_modules\sass");
module
当前模块导出的数据
module.exports.sum = 1;
// exports 等于 module.exports,简写方式
exports.sum = 2;
process
pid
获取进程id
const pid = process.pid;
argv
node 传参
# 命令行传参
node demo.js one two=2 three
let argv = process.argv;
// [
// "D:\Software\NodeJs\node.exe", // node命令的路径
// "D:\Workspace\Web_yuhuo\NodeJs\demo.js", // 被执行文件的路径
// "one", // 命令行参数
// "two=2",
// "three",
// ]
script 传参
{
"scripts": {
"demo": "node demo.js one",
},
}
npm run demo two
let argv = process.argv;
// [
// "D:\Software\NodeJs\node.exe", // node命令的路径
// "D:\Workspace\Web_yuhuo\NodeJs\demo.js", // 被执行文件的路径
// "one", // node参数
// "two", // script参数
// ]
env
获取环境变量
const pid = process.env;
// { ALLUSERSPROFILE: 'C:\\ProgramData',
// APPDATA: 'C:\\Users\\huoyu\\AppData\\Roaming',
// CHROME_CRASHPAD_PIPE_NAME: '\\\\.\\pipe\\crashpad_936_HBEHBVYSXHODIBJT',
// CommonProgramFiles: 'C:\\Program Files\\Common Files',
// ...
// }
exitCode
设置或获取退出码
process.exitCode = 1;
platform
获取为 Node.js 编译的平台,同 os.platform() 一样。
// darwin,freebsd,linux,openbsd,win32
const platform = process.platform;
cwd()
获取当前工作目录
let cwd = process.cwd();
// "D:\Workspace\Web_yuhuo\NodeJs"
exit()
立即终止进程
// 退出码:0 成功
process.exit(1);
kill()
终止进程
// 终止信号:SIGKILL 立即终止(等同exit()),SIGTERM 正常终止
process.kill(process.pid, 'SIGTERM');
on()
进程事件监听
process.on('SIGTERM', () => {
// 进程终止前处理,如关闭服务器
server.close(() => {
console.log('Process terminated')
});
});
nextTick()
当次事件循环结束后执行回调
process.nextTick(() => {
// 做些事情
});
hrtime()
计算时间差(比用Date计算更加精准)
var time = process.hrtime();
/* 执行某些操作 */
// 使用上一次返回的结果做参数
// 返回整数数组:[秒, 纳秒],秒和纳秒相加就是时间差
var diff = process.hrtime(time);