Node.js readFileSync返回未定义的

Node.js readFileSync返回未定义的,node.js,Node.js,我有一个2MB的html文件,node无法读取 我所尝试的: 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.r

我有一个2MB的html文件,node无法读取

我所尝试的:

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文件时,它没有任何问题


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

尝试使用文件的完整路径

比如说

// 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;
  }
});

您可以使用
fs.readFileSync('./db/user.json'),而不是使用
fs.readFile
中尝试。。。捕捉

const fetchAllUser = () => {

    // if file doesn't exists we have to write try catch
    try {
        // path should be relative to app.js / index.js (entry file)
        let userString = fs.readFileSync('./db/user.json');
        return JSON.parse(userString);
    } catch (e) {
        console.log(`No database available`);
        return [];
    }
};

确保文件名链接正确。文件名正确。当我尝试一些不存在的文件名时,node会抛出错误,但情况并非如此谢谢!现在它打印出一些东西,比如可能有一些编码问题?我将搜索moreTry
console.log(data.toString('utf8'))读取文件(文件名,'utf8')…->未定义的读取文件(文件名)…..…->未定义现在我想该文件有一些我无法轻松转换为utf8的非常规字节。但这是2MB,所以需要一些时间才能找到。。。谢谢你的时间,我会把它分成几个小文件,然后继续尝试。顺便问一下,我怎样才能“接受”你的回答?是的,你可以。祝你好运谢谢你的回答,但事实似乎并非如此