0

我使用 browserify 是为了能够使用 require。要将 fs 函数与 browserify 一起使用,我需要使用 brfs 对其进行转换,但据我所知,这导致只能在我的 fs 函数中输入静态字符串作为参数。我希望能够为此使用变量。

我想在特定目录中搜​​索 xml 文件并阅读它们。通过文本字段搜索或一次显示所有数据。为了做到这一点,我需要 fs 和 browserify 才能要求它。

const FS = require('fs')
function lookForRoom() {
    let files = getFileNames()
    findSearchedRoom(files)
}
function getFileNames() {
    return FS.readdirSync('../data/')

}
function findSearchedRoom(files) {
    const SEARCH_FIELD_ID = 'room'
    let searchText = document.getElementById(SEARCH_FIELD_ID).value
    files.forEach((file) => {
        const SEARCHTEXT_FOUND = file.includes(searchText.toLowerCase())
        if (SEARCHTEXT_FOUND) loadXML(file)
    })
}
function loadXML(file) {
    const XML2JS = require('xml2js')
    let parser = new XML2JS.Parser()
    let data = FS.readFile('../data/' + file)
    console.dir(data);
}
module.exports = { lookForRoom: lookForRoom }

我希望能够从包含 xml 文件的目录中读取内容。当前状态是我只能在向 fs 函数提供常量字符串时才能这样做

4

1 回答 1

2

brfs自述文件包含以下问题:

由于brfs静态评估您的源代码,因此您不能使用需要在运行时评估的动态表达式。

所以,基本上,你不能brfs以你希望的方式使用。

我希望能够从包含 xml 文件的目录中读取内容

如果“目录”是指“任何随机目录,其名称由某种表单输入确定”,那么这将不起作用。浏览器无法直接访问本地或服务器上的目录内容。

您不是说该目录存在于何处。如果它是本地的(在运行浏览器的机器上):我认为根本没有标准化的 API 可以做到这一点。

如果它在服务器上,那么您需要实现一个 HTTP 服务器,该服务器将接受来自某些客户端代码的目录/文件名,并以这种方式检索文件内容。

于 2019-01-01T22:02:58.430 回答