sails.js中的软删除

时间:2017-01-31 23:12:59

标签: javascript sails.js

我试图在sails.js项目中的模型上实现软删除,我通过覆盖相应控制器中的删除操作来更新名为isDeleted的布尔属性。

我面临的问题是,我需要覆盖相应控制器的查找操作,以便它忽略"删除的"记录,但我需要保留其余的原始功能。要做到这一点,我只需将原始查找操作的代码复制到覆盖中,但它取决于actionUtil模块,并且在执行该模块的需求时,无论我如何更改路由,它都无法管理找到模块。

所以,这就是我的控制器的样子:

var actionUtil = require('/sails/lib/hooks/blueprints/actionUtil'),
_ = require('lodash');

module.exports = {

find: function(req, res){

    // Look up the model
    var Model = actionUtil.parseModel(req);

    if ( actionUtil.parsePk(req) ) {
        return require('./findOne')(req,res);
    }

    // Lookup for records that match the specified criteria
    var query = Model.find()
    .where( actionUtil.parseCriteria(req) )
    .limit( actionUtil.parseLimit(req) )
    .skip( actionUtil.parseSkip(req) )
    .sort( actionUtil.parseSort(req) );

    // TODO: .populateEach(req.options);
    query = actionUtil.populateEach(query, req);

    query.exec(function found(err, matchingRecords) {
        if (err) return res.serverError(err);

        // Only `.watch()` for new instances of the model if
        // `autoWatch` is enabled.
        if (req._sails.hooks.pubsub && req.isSocket) {
            Model.subscribe(req, matchingRecords);

            if (req.options.autoWatch)
                { Model.watch(req); }

            // Also subscribe to instances of all associated models
            _.each(matchingRecords, function (record) {
                actionUtil.subscribeDeep(req, record);
            });
        }

        res.ok(matchingRecords);
    });

},//End .find

destroy: function(req,res){   

    console.log("Parametro: " + req.param('id') );
    Vendedor.update({ id_vendedor: req.param('id') }, { isDeleted: true })
    .exec(function (err, goal) 
    {
        if (err)
            return res.status(400).json(err);        

        return res.json(goal[0]);
    });

}
};

但是,当启动服务器时,我收到一个错误,说无法找到模块actionUtil。有谁知道我怎么能做到这一点?

0 个答案:

没有答案