У меня есть общий маршрут 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
Насколько я знаю, крючок применим к методу модели, а не к удаленному методу. Это означает, что у вас может быть столько удаленных методов, сколько нужно, а всего лишь один крючок. Я никогда не пытался маршрутизировать несколько удаленных методов на одну модель, поэтому я не могу быть уверен в этом. –
Я добавлю, что loopback имеет метод, называемый 'getCurrentContext' (см. [This] (https://docs.strongloop.com/display/JA/Using+current+context)), который вы, вероятно, могли бы использовать для получения маршрута , Последнее, что я использовал (год или два назад), у него были неприятные проблемы с параллелизмом, поэтому вы должны проверить, обновил ли LoopBack его. –