<Buffer 72 65 74 72 69 65 76 65 72> 请解释一下js中的意思
<Buffer 72 65 74 72 69 65 76 65 72> Please explain what's It's mean in js
我正在练习javascript,想知道<Buffer 72 65 74 72 69 65 76 65 72>
错误。
我正在从名为 dog.txt 的文件中读取数据。我发现当我将 "data" 放入 console.log 时,我看到了这个 <Buffer 72 65 74 72 69 65 76 65 72>
错误。我知道解决方案是将“${data}”放入 console.log 以获得预期结果。其实我想知道<Buffer 72 65 74 72 69 65 76 65 72>
是什么意思。
这是代码
return new Promise ((resolve,reject)=>{
fs.readFile(file,(err,data)=>{
if(err){reject("Data cannot be found")}else
resolve(data);
})
})
}
const getdata=async()=>{
try{
const data=await ReadfilePro(`./dog.txt`);
console.log(data);
}catch(err){
console.log(err);
}
}
getdata();
这里 dog.txt 文件只包含这条狗的名字 "retriever",不带引号。
作为上述代码的结果,我在控制台中得到了这个 <Buffer 72 65 74 72 69 65 76 65 72>
。
我希望你能给出详细的答案,如果这是一个愚蠢的问题,我很抱歉。
我不想要解决方案我想要解释。谢谢
您正在读取的是一个字节缓冲区。 NodeJS 不能也不会做出您正在读取字符串的假设,因为这是一个比人们想象的更难证明其合理性的假设。
这背后的原因是 readFile
处于您可用的最低抽象级别之一。如果人们知道他们的数据格式,则希望人们在此基础上编写代码。
幸运的是,有转换方法。假设您知道您的缓冲区是有效的 utf8,调用 data.toString('utf8')
将尝试将您的缓冲区转换为 utf8。
正如@Sébastien 上面所说,您需要指定编码格式。下面是修复你的 readFile Promise
return new Promise ((resolve,reject)=>{
fs.readFile(file,'utf-8', (err,data)=>{
if(err){reject("Data cannot be found")}else
resolve(data);
})
})
}
希望对你有帮助
我正在练习javascript,想知道<Buffer 72 65 74 72 69 65 76 65 72>
错误。
我正在从名为 dog.txt 的文件中读取数据。我发现当我将 "data" 放入 console.log 时,我看到了这个 <Buffer 72 65 74 72 69 65 76 65 72>
错误。我知道解决方案是将“${data}”放入 console.log 以获得预期结果。其实我想知道<Buffer 72 65 74 72 69 65 76 65 72>
是什么意思。
这是代码
return new Promise ((resolve,reject)=>{
fs.readFile(file,(err,data)=>{
if(err){reject("Data cannot be found")}else
resolve(data);
})
})
}
const getdata=async()=>{
try{
const data=await ReadfilePro(`./dog.txt`);
console.log(data);
}catch(err){
console.log(err);
}
}
getdata();
这里 dog.txt 文件只包含这条狗的名字 "retriever",不带引号。
作为上述代码的结果,我在控制台中得到了这个 <Buffer 72 65 74 72 69 65 76 65 72>
。
我希望你能给出详细的答案,如果这是一个愚蠢的问题,我很抱歉。
我不想要解决方案我想要解释。谢谢
您正在读取的是一个字节缓冲区。 NodeJS 不能也不会做出您正在读取字符串的假设,因为这是一个比人们想象的更难证明其合理性的假设。
这背后的原因是 readFile
处于您可用的最低抽象级别之一。如果人们知道他们的数据格式,则希望人们在此基础上编写代码。
幸运的是,有转换方法。假设您知道您的缓冲区是有效的 utf8,调用 data.toString('utf8')
将尝试将您的缓冲区转换为 utf8。
正如@Sébastien 上面所说,您需要指定编码格式。下面是修复你的 readFile Promise
return new Promise ((resolve,reject)=>{
fs.readFile(file,'utf-8', (err,data)=>{
if(err){reject("Data cannot be found")}else
resolve(data);
})
})
}
希望对你有帮助