2016-08-11 2 views
2

я хочу принести цену из базы данных для хранения в модели заказа, вот мой кодЯ хочу, чтобы хранить приведенные данные в переменном для дальнейшего использования в парусах JS (MongoDB)

newOrder: function(req,res){ 
    var data = req.body; 
    const orderNo = data.orderNo; 
    const user = data.user; 
    const business = data.business; 
    const inventory = data.inventory; 
    const price = Inventory.find({id: data.inventory}).exec(function(err,record){ return record.price}); 
    const address = data.address; 
    const quantity = data.quantity; 
    const contactNumber = data.contactNumber; 

    Order.create({ 
     orderNo: orderNo, 
     user: user, 
     business: business, 
     inventory: inventory, 
     price: price, 
     address: address, 
     quantity: quantity, 
     contactNumber: contactNumber 
     }).then(function(result){ 
     res.ok(result); 
    }); 
    }, 

я знаю, что это неверно, но я не знаю, как это сделать, Внутренний запрос ничего не возвращает, Я хочу сохранить приведенные данные в переменной для дальнейшего использования. пожалуйста Помощь

ответ

5

Здесь вы идете:

newOrder: function(req,res){ 
    var data = req.body; 
    const orderNo = data.orderNo; 
    const user = data.user; 
    const business = data.business; 
    const inventory = data.inventory; 
    const address = data.address; 
    const quantity = data.quantity; 
    const contactNumber = data.contactNumber; 

    Inventory.findOne({id: data.inventory}) 
    .then(function(record) { 
     // Price is available here as record.price, 
     // do whatever you want with it 
     return Order.create({ 
      orderNo: orderNo, 
      user: user, 
      business: business, 
      inventory: inventory, 
      price: record.price, 
      address: address, 
      quantity: quantity, 
      contactNumber: contactNumber 
     }); 
    }) 
    .then(function(createdOrder) { 
     res.ok(createdOrder); 
    }) 
    .catch(function(err) { 
     console.log("Error ar newOrder:", err); 
     return res.serverError(err); 
    }) 
} 

в основном только получать записи инвентаризации, а затем вы можете использовать его в Order запросе. Я также поменял Inventory.find на .findOne(), так как это похоже на то, как вы намеревались использовать его.