Node.js Express JSON搜索功能

时间:2017-02-18 18:01:56

标签: json node.js mongodb express

使用MEAN堆栈使用JSON数据创建搜索功能。如下图所示,连接到mongo DB并将所有内容推送到数据阵列。

app.get('/all/', function(req, res) {

var data = [];
  mongodb.MongoClient.connect(url, function(err, db) {

    var position = db.collection('Namers').find();
    position.forEach(function(doc, err) {
      data.push(doc);
    }, function() {
      db.close();
      res.json(data);
    });
  });
});

我想做一个参数搜索,如:

app.get('all/:search)

为了过滤与JSON文件中的名称或代码相对应的JSON信息。以下是一个例子:

[{"Name":"Bob", "Code":"23234"},{"Name":"Tim", "Code":"24924"}]

我将如何使用express(Node.js)来实现这一目标?

编辑:(完整代码)

app.get('/all/', function(req, res) {

  var data = [];
  mongodb.MongoClient.connect(url, function(err, db) {
    var position = db.collection('Modules').find();
    position.forEach(function(doc, err) {
      data.push(doc);
    }, function() {
      db.close();
      var filtered = data.filter(function(item){
        var result = false;
            Object.keys(item).map(function(key){
                if (item[key] == req.params.search){
                  result = true;
                }
            })
            return result;
      });
      res.json(filtered);
    });
  });
});

app.get('all/:search', function(req, res) {
});

1 个答案:

答案 0 :(得分:1)

app.get('/all/', function(req, res) {
  var data = [];
  mongodb.MongoClient.connect(url, function(err, db) {
  var position = db.collection('Modules').find();
  position.forEach(function(doc, err) {
    data.push(doc);
  }, function() {
    db.close();
    res.json(data);
  });
 });
});

app.get('all/:search', function(req, res) {
 var data = [];
  mongodb.MongoClient.connect(url, function(err, db) {
    var position = db.collection('Modules').find();
    position.forEach(function(doc, err) {
      data.push(doc);
    }, function() {
      db.close();
      var filtered = data.filter(function(item){
        var result = false;
            Object.keys(item).map(function(key){
                if (item[key] == req.params.search){
                  result = true;
                }
            })
            return result;
      });
      res.json(filtered);
    });
  });
});