博客
关于我
node全局对象 文件系统
阅读量:797 次
发布时间:2023-02-16

本文共 3132 字,大约阅读时间需要 10 分钟。

Node.js全局对象与文件系统操作指南

全局对象与全局变量

在Node.js中,全局对象可以通过global表示,所有全局变量都是这个对象的属性。与其他编程语言不同,Node.js的全局对象在客户端环境下是window,而在服务器端则是global。通过this关键字,可以指向当前全局对象。

全局变量则是全局对象的宿主,例如__filename表示当前脚本的文件名,__dirname表示脚本所在的目录。

_filename_dirname

  • _filename:表示当前脚本的文件名,执行时会输出文件的绝对路径。如果是模块文件,返回模块的路径。

    PS C:\Users\mingm\Desktop\test> node main.jsC:\Users\mingm\Desktop\test\main.js
    console.log(__filename); // 输出当前文件的路径
  • _dirname:表示当前脚本所在的目录。

    PS C:\Users\mingm\Desktop\test> node main.jsC:\Users\mingm\Desktop\test
    console.log(__dirname); // 输出当前文件夹的路径

setTimeout与setInterval

  • setTimeout:用于在指定时间后执行一次函数,返回定时器的句柄。

    function printHello() {    console.log('hello word');}setTimeout(printHello, 2000); // 2秒后执行printHello函数
  • clearTimeout:用于停止一个定时器。

    const timer = setTimeout(() => {    console.log('2秒后执行');}, 2000);clearTimeout(timer); // 停止定时器
  • setInterval:用于在指定时间间隔内重复执行函数,返回定时器句柄。

    function printHello() {    console.log('hello word!');}setInterval(printHello, 2000); // 每2秒执行printHello函数

process对象

process是Node.js的全局变量,用于描述当前节点进程的状态。可以通过process.on监听事件,如进程退出:

process.on('exit', (code) => {    console.log('退出码为', code);});console.log('程序执行结束');

运行以下命令可以查看退出码:

PS C:\Users\mingm\Desktop\test> node main.js程序执行结束退出码为 0

文件系统操作

Node.js提供了与Unix系统类似的文件操作API,主要包括以下方法:

异步文件操作示例

var fs = require('fs');// 异步读取文件内容fs.readFile('input.txt', (err, data) => {    if (err) {        console.error('读取文件失败:', err);    } else {        console.log('读取文件内容:', data.toString());    }});

同步文件操作示例

var fs = require('fs');// 同步打开并读取文件fs.open('input.txt', 'r', (err, fd) => {    if (err) {        console.error('打开文件失败:', err);    } else {        fs.read(fd, new Buffer.alloc(1024), 0, 1024, 0, (err, bytes) => {            if (err) {                console.error('读取文件失败:', err);            } else {                console.log('读取了', bytes, '字节数据:', fd.read().toString());            }        });    }});

其他文件操作

  • fs.ftruncate:截取文件长度。

    fs.ftruncate(fd, 10, (err) => {    if (err) {        console.error('截取文件失败:', err);    } else {        console.log('截取后的文件长度为10字节');    }});
  • fs.unlink:删除文件。

    fs.unlink('input.txt', (err) => {    if (err) {        console.error('删除文件失败:', err);    } else {        console.log('文件删除成功!');    }});
  • fs.mkdir:创建目录。

    fs.mkdir('./tmp/test', (err) => {    if (err) {        console.error('创建目录失败:', err);    } else {        console.log('目录创建成功!');    }});
  • fs.readdir:读取目录内容。

    fs.readdir('./tmp', (err, files) => {    if (err) {        console.error('读取目录失败:', err);    } else {        files.forEach(file => {            console.log('目录中的文件:', file);        });    }});

内存使用情况

可以通过process.memoryUsage()获取内存使用情况:

PS C:\Users\mingm\Desktop\test> node main.js{ rss: 18874368, heapTotal: 6066176, heapUsed: 3677376, external: 8272 }

Node.js文件系统

Node.js提供了与Unix系统类似的文件操作API,支持诸如读取、写入、截取、删除、创建目录等操作。

开发示例

以下是一个完整的文件操作示例:

var fs = require('fs');var path = require('path');// 创建或清空文件fs.writeFileSync('input.txt', '文件内容');// 异步读取文件fs.readFile('input.txt', (err, data) => {    if (err) {        console.error('读取文件失败:', err);    } else {        console.log('读取文件内容:', data.toString());    }});// 异步写入文件fs.writeFileSync('input.txt', '新的内容');

通过这些方法,开发者可以轻松地进行文件操作,提升应用程序的功能和性能。

转载地址:http://sajfk.baihongyu.com/

你可能感兴趣的文章
Numpy.ndarray对象不可调用
查看>>
Numpy.VisibleDeproationWarning:从不整齐的嵌套序列创建ndarray
查看>>
Numpy:按多个条件过滤行?
查看>>
Numpy:条件总和
查看>>
numpy、cv2等操作图片基本操作
查看>>
numpy中的argsort的用法
查看>>
NumPy中的精度:比较数字时的问题
查看>>
numpy判断对应位置是否相等,all、any的使用
查看>>
Numpy多项式.Polynomial.fit()给出的系数与多项式.Polyfit()不同
查看>>
Numpy如何使用np.umprod重写range函数中i的python
查看>>
numpy学习笔记3-array切片
查看>>
numpy数组替换其中的值(如1替换为255)
查看>>
numpy数组索引-ChatGPT4o作答
查看>>
numpy最大值和最大值索引
查看>>
NUMPY矢量化np.prod不能构造具有超过32个操作数的ufunc
查看>>
Numpy矩阵与通用函数
查看>>
numpy绘制热力图
查看>>
numpy转PIL 报错TypeError: Cannot handle this data type
查看>>
Numpy闯关100题,我闯了95关,你呢?
查看>>
nump模块
查看>>