钩子afterUpdate和afterDestroy未被调用

时间:2014-12-10 16:42:39

标签: strongloop

我的目标是在创建,更新或删除某些模型后发送一些请求。所以我实现了以下内容:

module.exports = function(TerminalUser) {

var http = require('http'); 

var tsReloadUser = function(id) {

    var options = {                     
        auth: 'user:pwd',
        host: 'host.domain.local',
        port: 8080,
        path: '/CmdUserCacheRefresh?userid=' + id,
        method: 'GET'
    };

    http.request(options, function(res) {

        console.log('STATUS: ' + res.statusCode);
        console.log('HEADERS: ' + JSON.stringify(res.headers));
        res.setEncoding('utf8');
        res.on('data', function (chunk) {
            console.log('BODY: ' + chunk);
        }); 

    }).end();
}

TerminalUser.afterSave = function(next) {

    console.log('afterSave');

    tsReloadUser(this.id);

    next();
};

TerminalUser.afterUpdate = function(next) {

    console.log('afterUpdate');

    tsReloadUser(this.id);

    next();
}

TerminalUser.afterDestroy = function(next) {

    console.log('afterDestroy');

    tsReloadUser(this.id);

    next();
};  

};

当创建实体并且所有内容都按预期运行时,将调用钩子afterSave。但是由于一些奇怪的原因,当用户更新或删除实体实例(数据已成功存储在数据库中)时,既没有调用afterUpdate / Destroy,也没有抛出错误消息。任何人都可以给我一些提示吗?

2 个答案:

答案 0 :(得分:0)

请参阅我的新回购中的示例:https://github.com/strongloop/loopback-faq-model-hooks

  

afterDestroy存在问题,等待解决的问题

答案 1 :(得分:0)

尝试使用changeddeleted Model's Events

实施您的逻辑