2017-02-18 128 views
0

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

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
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); 
    }); 
    }); 
}); 
+0

然后我拿什么添加到:app.get( '/管理/模块/:搜索/',函数(REQ,RES){/ /就在这儿}); – user3818418

+0

应该没有什么更多的添加到您的代码。我编辑了我以前的答案,因为出现了一些错误 –

+0

啊好吧我现在会尝试tyvm! – user3818418