У меня был код, отлично работающий для конечной точки REST, в которой было сообщение:
Это был код:
// POST single message
app.post('/message', (req, res) => {
const url = req.body.properties.url
const image = req.body.properties.image
const extraField = req.body.properties.extraField
db.message.create({
url: url,
image: image,
})
.then(() => myProcess(extraField, 'stepA'))
.then(newMessage => res.json(newMessage))
.then(() => myProcess(extraField, 'stepB'))
})
Теперь я пытаюсь использовать то же самое с использованием feathersjs, но я не знаю, как сделать 2, 3, 4 точно.
У меня теперь есть метод AFTER для метода создания службы сообщений:
module.exports = function (options = {}) { // eslint-disable-line no-unused-vars
return function processNewMessage (hook) {
const { extraField } = hook.data.properties
Promise.resolve(myProcess(extraField, 'stepA'))
.then( <<NO-IDEA>> ) // Send RESPONSE!!
.then(() => myProcess(extraField, 'stepB'))
return Promise.resolve(hook);
};
};
Поэтому мой вопрос сводится к следующему: как я могу отправить ответ и затем запустить "myProcess stepB" с помощью feathersjs?
Althoug это "наследие", я думаю, что это может быть актуально.
Ответы на часто задаваемые вопросы feathersjs! Как выполнить обработку после отправки ответа пользователю:
Это зависит от обещания, которое вы вернетесь в свой крючок. Вот пример крючка, который отправляет электронное письмо, но не ждет сообщения об успешном завершении.
function (hook) {
// Send an email by calling to the email service.
hook.app.service('emails').create({
to: '[email protected]',
body: 'You are so great!'
});
// Send a message to some logging service.
hook.app.service('logging').create(hook.data);
// Return a resolved promise to immediately move to the next hook
// and not wait for the two previous promises to resolve.
return Promise.resolve(hook);
}