2015-06-12 48 views
0

我試圖更新我的模型的值,但它不起作用。 奇怪的是我正在打印結果,它看起來與我在數據庫中使用Robomongo所看到的不同。 任何想法爲什麼會發生這種情況?DB,node.js和mongoose中的值未更新

這裏是我的代碼:

exports.create = function(req, res) { 
    var productId = req.query.product; 

    if (productId) { 
    Request.createWizard(req.user, { productId: productId }, function(err, request) { 
     Product.findById(productId, function(err, product) { 
     if (err) { 
      return console.log('oh no! error', err); 
     } else { 
      if (product.price =! 0) 
      request.status = 'ready'; 
      console.log(request); 
      (Here I see in the terminal: status = ready) 
     } 
     }); 
     req.flash('success', { msg: 'Your request has been successfully created.' }); 
     res.redirect('/discover'); 
    }); 
    } else { 
    var pages = require('../../schemas/wizard/request')(); 
    res.render('requests/form', { 
     title: 'Make a Request', 
     pages: pages, 
     saveState: false 
    }); 
    } 
}; 

當我檢查數據庫的狀態仍然未決。

回答

0

您要更改狀態屬性,但你這樣做後,不是在保存文檔到數據庫:

Request.createWizard(req.user, { productId: productId }, function(err, request) { 
    Product.findById(productId, function(err, product) { 
    if (err) { 
     return console.log('oh no! error', err); 
    } else { 
     if (product.price !== 0) { 
     request.status = 'ready'; 
     request.save(function(err) { // <-- save it back to the database 
      if (err) { 
      console.log('oh no! error', err); 
      } else { 
      console.log(request); 
      } 
     }); 
     } 
    } 
    }); 
    req.flash('success', { msg: 'Your request has been successfully created.' }); 
    res.redirect('/discover'); 
}); 
+0

謝謝,成功了! – user3464679