首页 > 解决方案 > Loopback connector hook

问题描述

I want to log all insert sql statements of my model. According to the loopback documentation the connector hook is ideal for this.

model.js

var _ = require('underscore');
module.exports = function(Model) {
  //...
  var connector = Model.getDataSource().connector;
  connector.observe('after execute', function(ctx, next) {
    var sql = ctx.req.sql;
    var isInsert = _.startsWith(sql, 'INSERT INTO');
    next();
  });
}

I am getting

getDataSource is not a function

However if I do console.log(Model) I can see the function.

Idea taken from here

标签: javascriptloopbackjs

解决方案


Model.getDataSource 不是模型的有效角色。
您可以创建一个启动脚本来完成所需的:

module.exports = function (server) {
     var myConnector = server.datasources.MyDataSource.connector;
     return myConnector.observe ('after execute', function (ctx, next) {
         // ...
     });
};

推荐阅读