如何使用 Node.js 获取有关文件的信息?
Node.js 是基于 Chrome 的 V8 JavaScript 引擎构建的开源和跨平台运行时环境,用于在浏览器之外执行 JavaScript 代码。您需要记住 NodeJS 不是框架,也不是编程语言。在本文中,我们将讨论如何使用 Node.js 获取有关文件的信息
我们将使用Node.js的fs模块 提取有关文件的信息。 fs模块是一个内置模块。我们将使用 fs 模块的fs.stat()模块来获取与文件相关的所有信息。如果要获取有关上传文件的信息,那么我们可以使用 npm 包来处理它们,例如 multer,它可以处理所有不同类型的文件。让我们一步一步来。首先,在当前工作目录中创建一个要查看其信息的文件。
第 1 步:创建一个“ app.js ”文件并使用npm初始化您的项目。
npm init
第 2 步:在项目文件夹中创建一个 info.txt 文件。
项目结构:
app.js
//Importing fs module
const fs = require("fs");
//stat methods takes path and a callback function as input
fs.stat("./info.txt", function(err, stats){
//Checking for errors
if(err){
console.log(err)
}
else{
//Logging the stats Object
console.log(stats)
}
});
使用以下命令运行app.js文件:
node app.js
现在在查看输出之前,让我们讨论一下 Stats 对象的属性:
- dev:包含文件的设备的 ID。 (bigInt 或数字)
- mode:给定文件的文件类型和模式的位域描述。 (bigInt 或数字)
- nlink:文件的硬链接数。 (bigInt 或数字)
- uid:文件所有者的用户 ID。 (bigInt 或数字)
- gid:文件所有者的组 ID。 (bigInt 或数字)
- rdev:文件的设备ID,如果它是一个特殊文件。 (bigInt 或数字)
- blksize:文件系统输入/输出的块大小。 (bigInt 或数字)
- ino:文件 inode 编号。它包含有关文件的基本信息。 (bigInt 或数字)
- size:文件的总大小,以字节为单位。 (bigInt 或数字)
- blocks:分配给给定文件的块数。 (bigInt 或数字)
- atimeMs:表示文件最后访问时间的时间戳。 (bigInt 或数字)
- mtimeMs:表示文件最后修改时间的时间戳。 (bigInt 或数字)
- ctimeMs:表示文件上次更改时间的时间戳,即更改 inode 的时间。 (bigInt 或数字)
- birthtimeMs:表示文件创建时间的时间戳。 (bigInt 或数字)
- aTime:表示文件最后访问时间的 Date 对象。 (日期)
- mTime:表示文件最后修改时间的 Date 对象。 (日期)
- cTime:表示文件最后更改时间的 Date 对象。 (日期)
- birthtime:表示文件创建时间的 Date 对象。 (日期)
输出:
因此,通过使用 nodeJS 的文件系统,您可以获得有关本地文件系统中任何文件的所有必需信息。