【问题标题】:Node.js Express JSON search functionalityNode.js Express JSON 搜索功能
【发布时间】:2017-02-18 18:01:55
【问题描述】:

使用 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) {
});

【问题讨论】:

    标签: json node.js mongodb express


    【解决方案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);
        });
      });
    });
    

    【讨论】:

    • 然后我应该添加什么:app.get('/admin/modules/:search/', function(req, res) {//right here});
    • 您的代码中应该没有什么可添加的了。我编辑了我之前的答案,因为有一些错误
    • 啊,好吧,我现在就试试 tyvm!
    • 由于某种原因,当我输入 localhost:4000/all/Bob 时它不起作用,当我想要 {"Name":"Bob", "Code":"23234"} 时它只出现 []出现
    • 这很奇怪,我可以看看你的整个文件吗?
    猜你喜欢
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多