ApolloServer에서 CORS 구성

5156 단어 apilambdagraphqlnode
CORS en mí API GraphQL que está construida con Apollo Server Lambda, cuando hacía una solicitud desde el frontend me daba el típico error en la consola, que más de uno/a debe haber visto alguna vez.
Pero yo me pregunté, en mí API, sí agregué la opción de CORS, entonces ¿Dónde está el problema?

냉철한 ApolloServer()



ApolloServer() puede recibir muchas opciones, uno es el objeto CORS pero este no funciona o en mí caso no funcionó.

Un ejemplo:

const { ApolloServer } = require('apollo-server-lambda');
const { typeDefs, resolvers } = require('./graphql/index');

const server = new ApolloServer({
  typeDefs,
  resolvers,
  // En teoría esto debería funcionar. 
  cors: {
    origin: '*',
    credentials: true
  }
});


솔루션



Después de buscar en Internet encontré una solución en github. 😎

Vuelvo a aclarar que está solución es aplicándola en Apollo Server Lambda, la verdad que no tengo idea si está solución funciona también en el resto de módulos de Apollo Server, creería que es lo mismo, pero la verdad que no lo sé.



해결 방법 CORS de ApolloServer() y pasarlo alserver.createHandler() que es lo que vamos a exportar.

Pasamos exactamente el mismo objeto CORS.

예:

exports.handler = server.createHandler({
  cors: {
    origin: '*',
    credentials: true
  }
});


Y acá el código completo para que se entienda mejor:

const { ApolloServer } = require('apollo-server-lambda');
const { typeDefs, resolvers } = require('./graphql/index');

const server = new ApolloServer({
  typeDefs,
  resolvers
});

exports.handler = server.createHandler({
  cors: {
    origin: '*',
    credentials: true
  }
});


결론



Eso fue todo lo que tuve que hacer, solamente cambiar de lugar el objeto CORS.

¡¡살루도스!! 🤙🏻

좋은 웹페이지 즐겨찾기