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