这是我第一次尝试构建Node模块;目的是解析文件(通常是HTML文件),查找特定匹配项,并对这些匹配项执行某些操作。
我正在使用fs
模块readdir
,查找该目录中的每个文件,然后将每个文件传递给readFile
,该文件将文件的内容作为字符串。
我想要实现的是搜索文件(或长字符串)的内容以获取特定匹配项,获取任何相关参数,然后将文件及其参数传递给将执行其他操作的函数。在我看来,只在HTML中查找数据属性是有意义的。例如,如果我要搜索此字符串:
<a href="/">
<img class="site-logo" src="..." data-option="site-logo true" />
</a>
我想查找data-option
并将其与site-logo true
以及文件名一起作为参数传递给函数。
在我的搜索中,我遇到过使用indexOf()
或search()
方法之类的东西并传递一个字符串数组来匹配,但我担心对于较大的文件,这会变得非常阻止(最终我将学会使用async
模块...),所以我想知道SO社区是否有任何聪明的建议来做这件事。
我应该使用像cheerio这样的东西吗?如果是这样,我将如何将其用于其他文件类型(非HTML)?也许是正则表达式?
感谢您的帮助!
答案 0 :(得分:1)
对于HTML内容,您应该使用cheerio之类的内容。对于非HTML资源,它取决于格式,npm上可能有模块来处理那些其他格式。如果没有,正则表达式可能是你的下一个最佳选择。