【问题标题】:How can I filter JSon File using NodeJs streams如何使用 NodeJs 流过滤 JSON 文件
【发布时间】:2014-06-08 21:30:51
【问题描述】:

我正在使用 Node.JS 流来解析 json 文件并将其绘制在地图上。 我有两个文件: 我绘制数据的前端

'/points.geojson'

服务器端: 1- 我加载外部文件(output.json)。

var fs = require('fs');

app.get('/points.json', function(req, res) {
  res.setHeader('Content-Type', 'application/json');
  fs.createReadStream(__dirname + '/output.json').pipe(res);
});

2- 现在我想过滤这些数据

我有三个选择来做到这一点

1- 在客户端: 我不确定我应该使用 Angular-JS 过滤,还是使用这个库的纯 JS Filter.JS

我有一个非常大的文件 (100mb)。所以,让我们考虑这个例子:

 [
        {'name': 'Apple', 'colour': 'Red'},
        {'name': 'Orange', 'colour': 'Orange'},
        {'name': 'Banana', 'colour': 'Yellow'}]

http://jsfiddle.net/65Pyj/

假设我想选择所有绿色的点

var output = arr.filter(function(x){return x.colour =="green"}); 

2- 在服务器端 我的问题是我想在服务器端过滤 json 数据,所以我不加载和重新加载数据(因为它很大)。 我应该过滤 Node.Js 上的数据。

当我勾选“绿色”时,我想过滤数据。然后使用上述脚本重新加载它。

我读到在 express 3 上,我们可以直接使用 res.json({colour:'green'}) http://expressjs.com/api.html#res.json

但是我怎样才能让它在客户端监听一个事件(复选框),然后重新加载 jsonfile。

任何想法我该怎么做?我正在使用 Node.Js/express

【问题讨论】:

    标签: javascript jquery json node.js angularjs


    【解决方案1】:

    为了过滤服务器端而不立即加载和解析整个文件,您可以查看这些可以解析 JSON 流(文件或其他)的模块:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      相关资源
      最近更新 更多