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