node.js - 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 文件时,它没有任何问题。
我能做些什么?是否有任何特定的字符串模式导致该节点无法读取文件?
解决方案
尝试使用文件的完整路径
例如
// 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;
}
});
推荐阅读
- powershell - 使用 PowerShell 为所有用户启用“打印背景颜色和图像”
- javascript - 如何做同样的事情,但使用 .then 而不是 setTimeout?我有一个错误“无法读取未定义的属性'then'”
- scala - 如何仅使用 Kafka 主题中的最新偏移量
- verilog - 下一阶段的 Systemverilog 递归更新值
- arduino - ESP32 - 在一项任务中进行多任务处理
- reactjs - Gatsby 在使用 onLoad 时构建出现窗口错误
- c# - C# 并行用于减速
- c# - 如何在 wpf 应用程序中制作自定义热键并执行各种操作
- jquery - jQuery检查动画左侧是否大于1000px
- javascript - Javascript 闭包编译器