Node Js搜索关键词并返回结果 小插件

1,200 阅读1分钟

本文章向大家介绍NodeJs正则关键字查找目录文件,主要包括NodeJs正则关键字查找目录文件及查找文件包含关键词使用实例、应用技巧、基本知识点总结和需要注意事项。

需求:

关键字搜索项目输出相关方法。例:整个搜索关键词,比如查找接口开头为/ipos-chains/的接口,然后将所有结果汇总。

技术点:

NodeJs遍历目录,读取文件,正则关键字匹配,返回条件数组。

代码:

var fs = require("fs");
const resultArr = [];

//路由
const filePath = path.resolve('./src');
//关键字
const lookingForString = /ipos-chains\/.*?(?=')/g;

recursiveReadFile(filePath);
const newArr = [...new Set(resultArr)];

console.log('data—-->',newArr);
// 如果内容太多,可以打印成字符串格式,然后格式化下代码就OK了
// console.log('data—-->',JSON.stringify(newArr)); 
function recursiveReadFile(fileName){

    if(!fs.existsSync(fileName)) return;
    if(isFile(fileName)){
        check(fileName);
    }
    if(isDirectory(fileName)){
        var files = fs.readdirSync(fileName);
        files.forEach(function(val,key){
            var temp = path.join(fileName,val);
            if(isDirectory(temp)) recursiveReadFile(temp);
            if (isFile(temp)) check(temp);
        })
    }
}
function check(fileName){
    var data = readFile(fileName);
    var exc = new RegExp(lookingForString);
    const arr = data.match(exc);
    if(!arr)return;
    resultArr.push(...arr);
}

function isDirectory(fileName){
    if(fs.existsSync(fileName)) return fs.statSync(fileName).isDirectory();
}

function isFile(fileName){
    if(fs.existsSync(fileName)) return fs.statSync(fileName).isFile();
}

function readFile(fileName){
    if(fs.existsSync(fileName)) return fs.readFileSync(fileName,"utf-8");
}

node小白,欢迎借鉴沟通。