MST

星途 面试题库

面试题:Node.js 文件权限管理基础

在Node.js中,如何使用fs模块检查一个文件是否具有可读权限?请写出具体代码示例,并解释其原理。
29.9万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试
const fs = require('fs');
const path = require('path');

const filePath = path.join(__dirname, 'example.txt');

fs.access(filePath, fs.constants.R_OK, (err) => {
    if (!err) {
        console.log('该文件具有可读权限');
    } else {
        console.log('该文件没有可读权限');
    }
});

原理解释

  1. fs.access 方法用于测试用户对指定路径的权限。它接受三个参数:
    • 第一个参数 path 是要检查权限的文件或目录的路径。这里通过 path.join(__dirname, 'example.txt') 获取当前目录下的 example.txt 文件路径,__dirname 是Node.js的全局变量,表示当前执行脚本所在的目录。
    • 第二个参数 mode 用于指定要检查的权限。fs.constants.R_OK 是Node.js提供的常量,表示可读权限。
    • 第三个参数是一个回调函数,当权限检查完成后会调用该回调函数。回调函数接受一个 err 参数,如果权限检查成功,errnull;如果权限检查失败,err 会包含错误信息。在回调函数中,根据 err 是否为 null 来判断文件是否具有可读权限,并输出相应的信息。