Проверка схемы Mongoose не работает с Fawn - PullRequest
0 голосов
/ 27 января 2019

Я работаю над MEAN-приложением и пытаюсь реализовать транзакции, подобные поведению MongoDB, используя FAWN.Я использую библиотеку мангустов.Когда я использую fawn, данные как бы пропускают условия схемы, такие как min: 1 для sellingPrice.Тем не менее, я использую {useMongoose: true} и в прогоне.

    var mongoose = require('mongoose');
    var Fawn = require('fawn');    
    Fawn.init(mongoose);

    //Function code is as follow

        var task = Fawn.Task();
        let item = await Item.findById(req.params.id);

        task.update('items', {_id: item._id}, {type: req.body.type, name: req.body.name, sku: req.body.sku, openingStock: req.body.openingStock, availableStock: req.body.availableStock, purchasePrice: req.body.purchasePrice, sellingPrice: req.body.sellingPrice, profitMargin: req.body.profitMargin, reorderLevel: req.body.reorderLevel, preferredVendor: req.body.preferredVendor});
        task.update('items', {_id: item._id}, {sellingPrice: -50});//This line should fail because min value for sellingPrice is 1
        task.run({ useMongoose: true })
            .then(function(){res.json(item);})
            .catch(function(error){res.json({error: {"message": error}});});

1 Ответ

0 голосов
/ 24 февраля 2019

У меня было несколько подобных проблем с обновлением, но в итоге сработало следующее:

try {
  await new Fawn.Task()
  .update('collection', 
               { _id: mongoose.Types.ObjectId(req.params.id) } , 
               { name: 'test', desc: 'description })
  .run({useMongoose: true});
} 
catch(err) { console.log(err); }
...