gpt4 book ai didi

javascript - 读取文件和字符串相等问题

转载 作者:行者123 更新时间:2023-11-30 08:13:32 30 4
gpt4 key购买 nike

我希望下面的 node.js 程序读取文件并打印出“登录失败”。如果文件中的文本是“登录失败”。然而,“if (data == "Login failed.") {”行无法返回 true,程序打印出“Login succeeded”。我正在使用“CentOS 5.5 版(最终版)”Linux 发行版。知道发生了什么事吗?谢谢!

BASEPATH = '/home/wz3chen/node/';

fs.readFile(BASEPATH + 'node.js/' + "loginLog", function (err, data) {
console.log("DATA:" + data);
if (data == "Login failed.") {
console.log('Login failed.');
} else {
console.log('Login succeeded.');
}
});

最佳答案

传递给回调的“数据”变量是 Buffer 类型,在与字符串进行比较时显然不会转换为字符串。您的文件末尾也可能有一个换行符,因此请 trim 它。试试这个:

if (data.toString().trim() == 'Login failed.') {
// ...

[编辑]

正如@Jim Schubert 在他的评论中提到的,如果您在调用 readFile 时指定字符编码,则 data 参数将是一个字符串,因此您也可以这样做这个:

fs.readFile(filename, 'utf8', function(err, data) {
if (data.trim() == 'Login failed.') {
// ...

关于javascript - 读取文件和字符串相等问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142438/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com