将参数传递给node.js domain.on('error'...)

时间:2019-03-07 14:22:57

标签: node.js koa

我使用koadomainkoa-respond。 我使用domain是因为请求有时会崩溃,并且我想使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);
    }
  }
};

0 个答案:

没有答案