【问题标题】:apollo server receive empty object from apollo upload clientapollo 服务器从 apollo 上传客户端接收空对象
【发布时间】:2019-09-17 17:02:56
【问题描述】:

我使用apollo serverapollo upload client

这是我发送文件的客户端代码:

const updateMarketing = gql`
    mutation UpdateMarketing(
        $file1: Upload
        $file2: Upload
        $file3: Upload
        $payload: MarketingInput!
    ) {
        updateMarketing(
            file1: $file1
            file2: $file2
            file3: $file3
            payload: $payload
        ) {
            isSuccess
            error
            data
        }
    }
`;

还有这个突变代码:

<Mutation mutation={updateMarketing}>
                        {(
                            updateMarketing,
                            { data, loading, error }
                        ) => (
                            <div>
                                <form
                                    onSubmit={e => {
                                        e.preventDefault();
                                        console.log(e.target.file1.files[0]);
                                        updateWmsSkuTicketMarketing({
                                            variables: {
                                                file1: e.target.file1.files[0],
                                                file2: e.target.file2.files[0],
                                                file3: e.target.file3.files[0],
                                                payload: {
                                                    id: e.target.id.value,
                                                    jobId: e.target.jobId.value
                                                }
                                            }
                                        });
                                    }}
                                >
                                    <input
                                        type="text"
                                        id="id"
                                        name="id"
                                        placeholder="id"
                                    />
                                    <br />
                                    <input
                                        type="text"
                                        id="jobId"
                                        name="jobId"
                                        placeholder="job id"
                                    />
                                    <br />
                                    <input
                                        type="file"
                                        id="file1"
                                        name="file1"
                                    />
                                    <br />
                                    <input
                                        type="file"
                                        id="file2"
                                        name="file2"
                                    />
                                    <br />
                                    <input
                                        type="file"
                                        id="file3"
                                        name="file3"
                                    />
                                    <br />
                                    <button type="submit">
                                        update  marketing
                                    </button>
                                </form>
                                {loading && (
                                    <div>Updating for marketing</div>
                                )}
                                {data && (
                                    <div>
                                        Update  markting Proccess
                                        is finished
                                    </div>
                                )}
                                {error && (
                                    <div>
                                        Error update marketing…
                                    </div>
                                )}
                            </div>
                        )}
                    </Mutation>

在服务器上我试图获取文件:

const updateMarketing = ({ payload, token, file1, file2, file3 }) =>
        new Promise((resolve, reject) => {
            try {

                console.log(file1, payload);
                file1
                    .then(({ stream, filename }) => {
                         //get stream
                     });
            }
            // catch

但它错误:file1.then is not a function

和服务器上的console.log(file1){}

可能是我在客户端错了,但我没找到。

请帮帮我,我错在哪里以及如何解决?

【问题讨论】:

    标签: apollo apollo-client


    【解决方案1】:

    updateMarketing 是解析器吗?

    您的变异参数在第二个解析器函数参数中

    apollo upload client的例子中,它也使用第二个参数来获取文件。

    docs

    还有example

    【讨论】:

      猜你喜欢
      • 2020-06-12
      • 2016-08-31
      • 2021-02-05
      • 2020-02-05
      • 2023-04-02
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 2020-12-19
      相关资源
      最近更新 更多