GraphQL Client如何格式化上传文件到服务器的格式

时间:2019-06-19 07:41:46

标签: react-native graphql apollo-client express-graphql

我正在尝试将图片从我的express-graphql应用上传到我的react-native服务器。 我不想将react-apollo用作graphql客户端。

我的服务器使用graphqlUploadExpress()

app.use(
  "/graphql",
  bodyParser.json(),
  graphqlUploadExpress(),
  expressGraphQL(req => ({
    schema,
    graphiql: true, // active graphic UI
   }))
);

我的突变看起来像:

    mutation: async (root, { myString1, picture, myString2 }) => {

      try {
        const { filename, mimetype, encoding, createReadStream } = await picture;
        console.log(filename, mimetype, encoding, createReadStream);
      } catch (err) {
        console.log(err);
      }

我的客户端在将数据添加到变异参数之前是这样格式化数据的:

    imageToBlob = (uri) => {
      return new Promise((resolve, reject) => {
        const uploadUri = Platform.OS === 'ios' ? uri.replace('file://', '') : uri;
        fetch(uploadUri)
          .then((response) => {
            const blob = response.blob();
            const formData = new FormData();
            formData.append('picture', blob);
            resolve(formData);
          })
          .catch((err) => {
            console.log(err);
            reject(err);
          });
      });
    };

我的变异服务器console.log打印undefined undefined undefined undefined,使我感到客户端数据格式错误。

那么我应该如何包装文件以将其正确发送到服务器?

预先感谢

0 个答案:

没有答案