Я использую koa
, domain
и koa-respond
.
Я использую domain
, потому что запрос иногда падает, и я хочу, чтобы не crash node.js.
У меня вопрос, is it possible to cancel request from node.js domain?
Я хочу отменить запрос и показать ответ для пользователя.
Приведенный ниже код вешает запрос, но не отправляет ответ (хотя node.js не падает):
const domain = require('domain');
export default {
tryReq: async (ctx, next) => {
try {
const d = domain.create();
const parsedData = await d.run(async () => {
const MyLink = `http://thesite.com/${ctx.params.data}`;
d.add(ctx);
d.on('error', err => {
try {
ctx.throw(403, 'Crashing');
d.dispose();
} catch (er) {
console.error('Error', er, ctx.params.data);
d.dispose();
}
});
const parsedDataValue = await callUrl(MyLink);
return parsedDataValue;
});
return ctx.ok(parsedData);
} catch (err) {
ctx.internalServerError(err);
}
}
};