複数のリクエストテンプレートを処理する複数のリモートメソッドを作成する汎用のSendMailルートがあります。 Email_Typeをリモートメソッドから元のルートに戻す方法に関するアイデア。私は、デフォルトでコードを追加することができますが、より洗練されたソリューションを望みます。ループバックのリモートメソッド戻り値のデータ以外の値
Mail.genericSendMail = function genericEmail(response, callback) {
console.log(response);
let templateId=0;
//PROBLEM: HOW TO KNOW WHICH REMOTE WAS USED
switch (response.emailType) {
case "Template-1":
templateId= 1234;
break;
case "Template-2":
tempalteId = 456;
break;
default:
templateId = 789l
} //switch
console.log(templateId);
};
//Want multiple routes like this to support various templates
Mail.remoteMethod("genericEmail", {
http: {
path: "/emailTemplate1",
verb: "POST"
},
accepts [
{arg: "request", type:"object",http: {source:"body"},
default: {firstName:"", lastName:"",emailAddress:""}
}],
returns: RESTResponseStatic.loopbackAdapterCommonRestResponseDefinition()
});
//Want multiple routes like this to support various templates
Mail.remoteMethod("genericEmail", {
http: {
path: "/emailTemplate2",
verb: "POST"
},
accepts [
{arg: "request", type:"object",http: {source:"body"},
default: {emailAddress:"", promoCode:""}
}],
returns: RESTResponseStatic.loopbackAdapterCommonRestResponseDefinition()
});
非常に多くの可能性があるので、私はフックから離れようとしていました。私が方法を知っていれば、ルートを取得することは受け入れられるでしょう。 – Jim
私が知る限り、フックはモデルメソッドに適用され、リモートメソッドには適用されません。あなたが望むだけ多くのリモートメソッドを持つことができますが、ただ1つのフックを持つことができます。私は1つのモデルに複数のリモートメソッドをルーティングしようとしたことがないので、私はそれを確信することはできません。 –
私はループバックに 'getCurrentContext'というメソッドがあることを付け加えます([this](https://docs.strongloop.com/display/JA/Using+current+context)参照)、これはおそらくルートを取得するのに使うことができます。最後に使ったのは(1〜2年前)、並行処理に問題があったので、LoopBackがそれを更新したかどうかをチェックする必要があります。 –