fs.readFileSync() 没有回调和编码不起作用?
fs.readFileSync() no callback and encode doesn't work?
我写了这个小测试代码试图调试我的另一个项目,发现 fs.readFileSync() 似乎没有回调函数并且编码不起作用。
const fs = require("fs");
var x = fs.readFileSync(__dirname + "/file.txt", {encode: "utf8"}, () => {
console.log("Callback function?");
});
console.log(x);
预期输出:
"Callback function?"
file.txt
的内容
但我只是收到了“”
这里有什么问题?
fs.readFileSync 不接受回调,因为它是同步运行的。它将 return 文件数据。
如果您希望异步读取文件,请使用 fs.readFile。
以下是两者的示例:
// Sync. readFile
const fileData = fs.readFileSync("some_file.txt", { encoding: "utf8"});
console.log("fileData:", fileData);
// Async. readFile
fs.readFile("some_file.txt", { encoding: "utf8"}, (err, fileData) => {
if (err) {
console.error("Error occurred:", err);
} else {
console.log("fileData:", fileData);
}
});
查看文档 here。它清楚地显示没有回调,我猜这个调用不起作用,因为你提供了一个函数而不是 "flags" 选项,它有点搞砸了。
另外,这叫做 "readFileSYNC" - 默认情况下同步操作没有回调,您可以只写您想要在它们之后发生的事情 - 它会在它们之后立即发生。没有时间问题,因为它们是同步的。
您程序的正确代码是:
var x = fs.readFileSync(__dirname + "/file.txt", { encoding: "utf8" });
,并且在此日志 w/e 之后,您想要或处理您想要的数据 w/e,它将在 X 变量中。
我不确定您是想在 Node.js 中进行同步操作还是异步操作,但我看到您正在使用同步函数 fs.readFileSync,并试图通过异步方法进行访问
要读取文件,您可以使用 fs 的 readFileSync 方法 class:喜欢
const fs = require("fs");
const output = fs.readFileSync(__dirname + "/file.txt");
console.log(output);
异步获取数据,回调获取内容。
fs.readFile(filename, "utf8", (err, data) => {
if (err) throw err;
console.log(data)
});
我写了这个小测试代码试图调试我的另一个项目,发现 fs.readFileSync() 似乎没有回调函数并且编码不起作用。
const fs = require("fs");
var x = fs.readFileSync(__dirname + "/file.txt", {encode: "utf8"}, () => {
console.log("Callback function?");
});
console.log(x);
预期输出: "Callback function?" file.txt
的内容但我只是收到了“”
这里有什么问题?
fs.readFileSync 不接受回调,因为它是同步运行的。它将 return 文件数据。
如果您希望异步读取文件,请使用 fs.readFile。
以下是两者的示例:
// Sync. readFile
const fileData = fs.readFileSync("some_file.txt", { encoding: "utf8"});
console.log("fileData:", fileData);
// Async. readFile
fs.readFile("some_file.txt", { encoding: "utf8"}, (err, fileData) => {
if (err) {
console.error("Error occurred:", err);
} else {
console.log("fileData:", fileData);
}
});
查看文档 here。它清楚地显示没有回调,我猜这个调用不起作用,因为你提供了一个函数而不是 "flags" 选项,它有点搞砸了。
另外,这叫做 "readFileSYNC" - 默认情况下同步操作没有回调,您可以只写您想要在它们之后发生的事情 - 它会在它们之后立即发生。没有时间问题,因为它们是同步的。
您程序的正确代码是:
var x = fs.readFileSync(__dirname + "/file.txt", { encoding: "utf8" });
,并且在此日志 w/e 之后,您想要或处理您想要的数据 w/e,它将在 X 变量中。
我不确定您是想在 Node.js 中进行同步操作还是异步操作,但我看到您正在使用同步函数 fs.readFileSync,并试图通过异步方法进行访问
要读取文件,您可以使用 fs 的 readFileSync 方法 class:喜欢
const fs = require("fs");
const output = fs.readFileSync(__dirname + "/file.txt");
console.log(output);
异步获取数据,回调获取内容。
fs.readFile(filename, "utf8", (err, data) => {
if (err) throw err;
console.log(data)
});