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

你可能感兴趣的文章
node-static 任意文件读取漏洞复现(CVE-2023-26111)
查看>>
Node.js 8 中的 util.promisify的详解
查看>>
node.js debug在webstrom工具
查看>>
Node.js GET、POST 请求是怎样的?
查看>>
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
查看>>
Node.js RESTful API如何使用?
查看>>
node.js url模块
查看>>
Node.js Web 模块的各种用法和常见场景
查看>>
Node.js 之 log4js 完全讲解
查看>>
Node.js 函数是什么样的?
查看>>
Node.js 函数计算如何突破启动瓶颈,优化启动速度
查看>>
Node.js 切近实战(七) 之Excel在线(文件&文件组)
查看>>
node.js 初体验
查看>>
Node.js 历史
查看>>
Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
查看>>
Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
查看>>
Node.js 异步模式浅析
查看>>
node.js 怎么新建一个站点端口
查看>>
Node.js 文件系统的各种用法和常见场景
查看>>
Node.js 模块系统的原理、使用方式和一些常见的应用场景
查看>>