博客
关于我
node全局对象 文件系统
阅读量:795 次
发布时间: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/

你可能感兴趣的文章
Nginx访问控制_登陆权限的控制(http_auth_basic_module)
查看>>
nginx负载均衡器处理session共享的几种方法(转)
查看>>
nginx负载均衡的5种策略(转载)
查看>>
nginx负载均衡的五种算法
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NHibernate学习[1]
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>