javascript - 如何使用文件系统和nodejs从文件中获取匹配的字符串?

标签 javascript node.js fs

我从客户端传递字符串,如果该字符串是该文件内容的一部分,我想打印该行,使用 fs 和 nodejs 是否可行?

service.js

var fs = require('fs');
var path = require('path');
var async = require('async');
var searchStr;

function readFile(str){
    searchStr = str;
//  var url = './logs/St/server1.log';
    fs.readFile('./logs/St/server1.log', 'utf8', function (err,data) {
      if (err) {
        return console.log(err);
      }
      console.log('Server Data',data);
      inspectFile(data);
    });
}


function inspectFile(data) {
    if (data.indexOf(searchStr) != -1) {
        // do something
        console.log('print the matching data');
    }
}

exports.readFile = readFile;

最佳答案

您必须首先按新行分割数据。试试这个:

function inspectFile(data) {
    var lines = data.split('\n');              // get the lines
    lines.forEach(function(line) {             // for each line in lines
        if(line.indexOf(searchStr) != -1) {    // if the line contain the searchStr
            console.log(line);                 // then log it
        }
    });
}

注意:您可以将 searchStr 作为参数传递给 inspectFile,而不是使 searchStr 全局化。

关于javascript - 如何使用文件系统和nodejs从文件中获取匹配的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42447391/

相关文章:

javascript - 我需要使用 fs 库读取带过滤器的目录

javascript - 如何使用querySelectorAll

javascript - Laravel 验证表中的唯一值以放入错误函数(js)

javascript - jQuery .focusout/.click 冲突

javascript - Node.JS中的createReadStream

file - Node.js:如何在不上传文件列表的情况下检查文件夹是否为空

php - 使用句号分段文本

javascript - 如何使用discord.js中的FS将richEmbed保存到文件?

javascript - express.json({ extended : false}) 中参数的含义

javascript - NodeJs : fs. appendFile 函数似乎错过了给出的最后一个字符串