2017-02-27 66 views
0

我有一个API,我想要一次去数据库,以发布一条新记录,然后返回符合条件的所有记录。我想知道如何在发布新内容时返回所有记录?

因此,这里是我的终点:

var Product = require('../models/product'); 

router.route('/') 
.post(function(req, res){ 
    var product = new Product(); 

    product.business_id = req.body.business_id; 
    product.product_name = req.body.product_name; 
    product.sku = req.body.sku; 
    product.description = req.body.description; 
    product.cost = req.body.cost; 
    product.discount = req.body.discount; 
    product.donation = req.body.donation; 
    product.image = req.body.image; 
    product.post_date = req.body.post_date; 
    product.start_date = req.body.start_date; 
    product.end_date = req.body.end_date; 
    product.available = req.body.available; 


    product.save(function(err, product){ 
    if(err) 
     res.send(err); 
    res.json(product); 
    }) 
}) 

我想,然后返回所有具有相同的“business_id”的记载

的问题是它只返回我只是张贴了纪录。

有什么建议吗?

+0

你为什么要避免多次往返? – 2017-02-27 05:52:21

+0

表现和规模。 – cnak2

回答

1

我不确定从REST的角度来看返回列表是否有用。我可能会再打一个电话来获得清单,以保持清晰的架构。

但无论如何,以达到你想要什么,你肯定需要再进行一次DB调用和检索所需的记录是这样的:

product.save(function(err, product){ 
 
\t if(err) { 
 
\t \t //You could send a status here like this: res.status(400).send(err) here. 
 
\t \t res.send(err); 
 
\t \t return; 
 
\t } 
 

 
\t Product.find({business_id: req.body.business_id}, function (err, data) { 
 
\t \t if (err) { 
 
\t \t \t res.send(err); 
 
\t \t \t return; 
 
\t \t } 
 

 
\t \t res.send(data); 
 
\t }); 
 
});

相关问题