我正在使用MEAN堆栈(MongoDB / Express / Angular / Node)开发一个网站。
我有一个包含12个不同字段/属性的产品架构,包括大小,颜色,品牌,型号等。在Angular或服务器端过滤产品的最佳和最有效的方法是什么?如何才能如果客户选择了多个属性,我会将结果链接起来?那会是什么样的?
答案 0 :(得分:1)
假设会有很多产品,为了使用Angular进行过滤,下载到客户端会太多。它不能很好地扩展。随着产品列表越来越大,性能越来越低。通常,更好的方法是让MongoDB为您进行过滤。它非常快。
但是,您可以通过向服务器发布用于该过滤方法的端点上所需的过滤术语来控制Angular的过滤,例如,使用 http模块
http.post('/api/filter/' + methodOfFiltering, { 'term': termtoFilterBy }, function(dataReturned) {
// use dataReturned to do something with the data
});
将它放在角度服务方法中,这样就可以将它注入任何控制器/组件。
创建一个将在mongoose查询中使用该方法和关键字的端点。我假设您正在使用Express作为服务器路由。
app.post('/api/filter/:method', function(req, res) {
var method = req.params.method;
var termToFilterBy = req.body.term;
productSchema.find({method: termToFilterBy}, function(err, products) {
res.send(products);
});
});
如果有帮助,请告诉我。