1
我需要以編程方式爲模型運行遠程掛鉤。我怎樣才能做到這一點?Node.js + Loopback:以編程方式運行遠程掛鉤
我需要以編程方式爲模型運行遠程掛鉤。我怎樣才能做到這一點?Node.js + Loopback:以編程方式運行遠程掛鉤
我沒有找到任何解決方案和實施礦山使用的
/**
* Trigger execution of remote hooks of a model
*
* @param app The loopback application
* @param modelName The model name
* @param data The model data
* @param when The possible values are 'before' or 'after'
* @param method The remote method name
* @param ctx The hooks context
* @param next
*/
exports.execHooks = function(app, modelName, data, when, method, ctx, next) {
// Save original context values
var originalData = ctx.args.data || {};
var originalMethod = ctx.method;
// Get shared method
var modelSharedClass = app.remotes().classes().filter(function(item) {
return item.name === modelName;
})[0];
var modelSharedMethod = modelSharedClass.methods().filter(function(item) {
return item.name === method;
})[0];
// Change context data
ctx.args.data = data;
ctx.method = modelSharedMethod;
ctx.methodString = modelSharedMethod.stringName;
// Execute hooks
var remoteObject = app.remoteObjects()[modelName];
app.remotes().execHooks(when, modelSharedMethod, remoteObject, ctx, function(err) {
// Restore context data
var changedData = ctx.args.data;
ctx.args.data = originalData;
ctx.method = originalMethod;
ctx.methodString = originalMethod.stringName;
next(err);
});
};
例子:
utils.execHooks(app, app.models.MyModel, model, 'before', 'create', ctx);
難道你剛剛創建的模型的方法,你想要它做的事情。遠程掛鉤在其他方法之前或之後自動調用。我想你必須創建自己的方法來自己執行它們。 – jfriend00
我在模型A中有一個遠程調用,當我selectaly收到一個模型B.如果提供模型B,我應該創建它。模型B創建請求具有遠程掛鉤。現在,這個掛鉤應該在兩種情況下執行,即在創建模型B時以及執行對模型A的請求時。我試圖找到一個解決方案,以避免遠程鉤子代碼複製 –
@MaximSharai我遇到了同樣惱人的問題。你是否找到了解決方案,而不是複製代碼? – jcragun