我使用browserify以便能够使用require。为了在浏览器中使用fs函数,我需要使用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函数提供常量字符串时,我才能这样做
答案 0 :(得分:2)
brfs
自述文件包含以下陷阱:
由于
brfs
会静态评估源代码,因此无法使用需要在运行时进行评估的动态表达式。
因此,基本上,您无法按照希望的方式使用brfs
。
我希望能够从包含xml文件的目录中读取内容
如果用“目录”来表示“任何随机目录,其名称由某种形式的输入确定”,则该目录将不起作用。浏览器不能直接访问本地或服务器上的目录内容。
您不是在说该目录的位置。如果它是本地的(在运行浏览器的计算机上):我认为根本没有标准化的API。
如果它在服务器上,那么您需要实现一个HTTP服务器,该服务器将从某些客户端代码中接受目录/文件名,并以这种方式检索文件内容。