Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
Cómo fusionar el backend de graphql nodejs existente en la aplicación nextjs

Tengo 2 repositorios -

  1. Servidor: una API de Graphql en TypeScript/Node que se comunica con mi base de datos Postgres a través de Typeorm. Esto se ejecuta en localhost: 4000
  2. Cliente: una aplicación nextjs que envía solicitudes a mi servidor graphql y muestra algunos datos y hace otras cosas. Esto se ejecuta en localhost:3000

Por lo que puedo decir, también podría tener ambas piezas de código en un solo repositorio y tener 1 paquete.json, etc. Me gustaría implementar esto por 2 razones

  1. Los 2 podrían compartir código.
  2. Hará las cosas más fáciles de implementar.

Sin embargo, no tengo claro cómo debo hacerlo. ¿Simplemente coloco todo el código que tengo actualmente en mi repositorio del servidor en la carpeta "src/pages/api" del repositorio del cliente y listo?

A continuación se muestra el servidor index.js

 import { ApolloServer } from "apollo-server-express"; import cors from 'cors'; import express from "express"; import "reflect-metadata"; import { buildSchema } from "type-graphql"; import { appDataSource } from "./data-source"; import { HelloResolver, MarketDataResolver, UserResolver} from "./resolvers"; export const startServer = async () => { await appDataSource.initialize(); await appDataSource.runMigrations(); const app = express(); app.use(cors({ origin: ['http://localhost:3000', 'https://studio.apollographql.com'], credentials: true })) const apolloServer = new ApolloServer({ schema: await buildSchema({ resolvers: [UserResolver, HelloResolver, MarketDataResolver], validate: false, }), context: () => ({ em: appDataSource.manager }), }); await apolloServer.start(); apolloServer.applyMiddleware({ app, cors: false }); app.listen(4000, () => { console.log("server started on localhost:4000"); }); }; startServer().catch((err) => { console.error(err); });

Y los scripts en Server package.json

 { "name": "server", "main": "index.js", "scripts": { "test-server": "NODE_ENV=test ts-node src/index.ts", "test": "NODE_ENV=test jest", "rstest": "start-server-and-test 'yarn test-server' 'http-get://localhost:4000/graphql?query={ __schema { queryType { name } } }' 'yarn test'", "watch": "tsc -w", "start": "node dist/index.js", "dev": "nodemon dist/index.js", "start2": "ts-node src/index.ts", "dev2": "nodemon --exec ts-node src/index.ts", "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js" },

Por lo general, ejecuto mi servidor con yarn watch en una terminal y yarn dev en un segundo.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda