使用graphql-upload软件包时,我如何正确地早日返回?

时间:2018-12-03 01:15:33

标签: upload graphql

我正在尝试使graphql-upload正常工作,除了一个用例之外,它都运作良好。在我的uploadImage突变解析器中,我正在检查图像记录是否已存在于数据库中,然后尽早返回而没有将文件上载到CDN。

如果我早早返回,则会收到以下错误消息:Request disconnected during file upload stream parsing.,服务器崩溃。

如果如果图像已经存在,我不通过调用createReadStream创建流,则不会收到错误消息。这是正确的方法吗?

async function uploadImage(root, { input }, ctx) {
  const { image, hash } = input;
  const { filename, mimetype, createReadStream } = await image;
  const stream = createReadStream();

  try {
    let image = await Image.findOne({ hash }, ctx);

    if (image) {
      stream.destroy();

      return { image, error: null };
    }

    // pipe stream to AWS & create DB record

    return { image, error: null };
  } catch(error) {
    // error handling

    return { image: null, error: error.message }
  }
}

0 个答案:

没有答案