获取目录json中的所有文件

时间:2017-01-15 20:41:48

标签: javascript jquery arrays json

我想在我的目录中获取所有文件json以进行搜索。

{{1}}

你认为它可能还是我需要使用其他方法?

THX

2 个答案:

答案 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);
  });
});