首页 > 解决方案 > readFileSync 返回未定义

问题描述

我有一个 2MB 的 html 文件,节点无法读取。

我试过的:

const fs = require('fs');
const file_name = process.argv[2];

let blob = fs.readFileSync(file_name, 'utf8')
console.log(blob)

这将“未定义”打印到终端

我也尝试过异步版本:

const fs = require('fs');
const file_name = process.argv[2];

fs.readFile(file_name, 'utf8', function (err, data) {
    if (err) {
        console.log(err)
        return false    
    }
    console.log(data)
});

这也打印“未定义”

当我尝试其他 html 文件时,它没有任何问题。

我能做些什么?是否有任何特定的字符串模式导致该节点无法读取文件?

标签: node.js

解决方案


尝试使用文件的完整路径

例如

// Dependencies
const fs = require('fs');
const path = require('path');
// Add current path to filename
const file_name = path.join(__dirname, process.argv[2]);

// Check if file exist
fs.exists(file_name, function (file) {
  if (file) {
    // Read file with file_name
    fs.readFile(file_name, 'utf8', function (err, data) {
      if (err) {
        console.log(err);
        return false;
      }
      console.log(data);
    });
  }
  else{
      console.log("file not found");
      return false;
  }
});

推荐阅读