2017-02-18 6 views
0

Verwenden des MEAN-Stacks zum Erstellen von Suchfunktionen mithilfe von JSON-Daten. Wie unten gezeigt, indem man eine Verbindung zur Mongo-DB herstellt und alles auf das Datenfeld drückt.Node.js Express-JSON-Suchfunktionalität

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

Ich möchte eine Parametersuche tun:

app.get('all/:search) 

Um die JSON Informationen zu filtern, um entweder den Namen oder Codes entsprechen, die in meiner JSON-Datei. Welches ein Beispiel kann unten gesehen werden:

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

Wie würde ich gehen, dies mit Express (Node.js) zu erreichen?

edit: (vollständiger Code)

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

Antwort

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

Und dann, was soll ich hinzufügen: app.get ('/ admin/modules /: Such /', function (req, res) {/ /genau hier}); – user3818418

+0

Es sollte nichts mehr zu Ihrem Code hinzufügen. Ich habe meine vorherige Antwort bearbeitet, da es einige Fehler gab –

+0

Ah okay, ich werde es jetzt versuchen Tyvm! – user3818418