我想在我的目录中获取所有文件json以进行搜索。
{{1}}
你认为它可能还是我需要使用其他方法?
THX
答案 0 :(得分:2)
您无法生成一个通配符AJAX请求,该请求将返回您服务器上的所有可能的JSON文件。您需要事先知道您将发送请求的确切终点。否则,如果所有客户端都能事先知道服务器上有哪些文件可用,那么这将是一个安全漏洞。
因此,一个可能的策略是在服务器上有一些/describe
端点,它将返回所有可用JSON文件的列表。然后,客户端将首先向此端点发出AJAX请求,然后对于列表中的每个返回端点,它将发出单独的AJAX请求:
$.getJSON('/data/discover', function (data) {
// suppose that data looks like this:
// ["/data/a.json", "/data/b.json", "/data/c.json"]
for (var i := 0; i < data.length; i++) {
// send an AJAX request to each individual JSON file
// available on the server as returned by the discover endpoint
$.getJSON(data[i], function (result) {
...
});
}
});
答案 1 :(得分:1)
基本上,您无法通过一个请求请求多个文件。
然而,该场景非常适合async.parallel
:
var async = require('async');
app.get('/json', function(req, res) {
var work = {
file01: async.apply(fs.readFile, __dirname + '/file01.json'),
file02: async.apply(fs.readFile, __dirname + '/file02.json')
};
async.parallel(work, function (error, results) {
if (error) {
res.status(500).send(error);
return;
}
//might need string->Object here
results['file01'] = JSON.parse(results['file01']);
results['file02'] = JSON.parse(results['file02']);
res.send(results);
});
});