Загрузка файлов с сервера Apollo и конфликт Skipper.js - PullRequest
0 голосов
/ 12 декабря 2018

Я использую Apollo Server в Express, в котором предусмотрена загрузка файлов через многокомпонентную форму.

Я также использую Skipper.js для обработки загрузки файлов по «обычным» маршрутам вне моей конечной точки GraphQL.

Похоже, что промежуточное программное обеспечение Skipper имеет приоритет и конфликтует с функцией загрузки файлов на сервер Apollo.

Есть ли способ отключить Skipper на некоторых маршрутах?Или есть какой-то обходной путь, чтобы оба могли работать вместе?

Вот урезанная версия моего экспресс-приложения:

import 'dotenv/config';
import cors from 'cors';
import express from 'express';
import skipper from 'skipper';
import { ApolloServer } from 'apollo-server-express';
import authMiddleware from './middlewares/auth';
import { fileController } from './controllers';

const app = express();

app.use(cors());
app.use(skipper());

app.post('/xxxxx', authMiddleware, fileController.upload);


const server = new ApolloServer({
  ...
});

server.applyMiddleware({ app, path: '/graphql' });

sequelize.sync().then(async () => {
  app.listen({ port: 8000 }, () => {
    console.log(`Apollo Server on http://localhost:8000/graphql`);
  });
});

Если я закомментирую строку app.use(skipper());, загрузка файла apolloработает.Если я оставлю его, мой распознаватель GraphQL никогда не будет вызван, а время отправки запроса истечет.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...