2017-02-18 133 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