Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

254
Views
El servidor Nuxt & Express no recibe solicitudes de API en producción/dist

Tengo una aplicación Nuxt ejecutándose correctamente en mi servidor local y todas las solicitudes de API se ejecutan correctamente desde el mismo servidor (usando la propiedad serverMiddleware en nuxt.config.js ). Cuando ejecuto un yarn generate , la ruta al servidor API se pierde y no se cargan datos. A continuación se muestran algunas capturas de pantalla.

Carga datos correctamente desde la API.

1

No se puede encontrar la API

2

Aquí hay un ejemplo de una llamada api en el archivo project_dir api/index.js

 const express = require("express"); const passport = require("passport"); const allRoutes = require("../api/routes/routes"); const guestRoutes = require("../api/routes/guest"); const fileUpload = require("express-fileupload"); const path = require("path"); // Create express instance const app = express(); // Init body-parser options (inbuilt with express) app.use(express.json()); app.use(fileUpload()); app.use(express.urlencoded({ extended: false })); app.use(express.static(path.join(__dirname, "../", "dist"))); /** * -------------- PASSPORT AUTHENTICATION ---------------- */ // Need to require the entire Passport config module so index.js knows about it require("./config/passport-jwt"); // Initialize Passport app.use(passport.initialize()); /** * -------------- ROUTES ---------------- */ // Imports all of the routes from ./routes/index.js app.use(guestRoutes); app.use(passport.authenticate("jwt", { session: false }), allRoutes); console.log("express"); console.log(path.join(__dirname, "../", "dist")); app.get("*", (req, res) => { res.sendFile(path.join(__dirname, "../", "dist", "index.html")); }); // Export express app module.exports = app;

No sé por qué no puedo obtener datos de las rutas API que estoy ejecutando en el mismo servidor.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Aquí hay una respuesta detallada sobre cómo ejecutar un servidor Express junto con Nuxt: https://stackoverflow.com/a/72102209/8816585

Lo primero que debe saber es que no puede tener un servidor Node.js con yarn generate porque está usando target: 'static' y, como puede adivinar, cuando algo es estático, no necesita un servidor Node.js para ser servido al usuario final (solo los archivos estáticos html + css + js están alojados en un CDN o similar).
Este modo está destinado a alojar el código en Netlify, Vercel o similar, sin un servidor Node.js disponible allí.

¿Por qué funciona localmente? Porque tiene un servidor de desarrollo de Webpack en ejecución (con un servidor Node.js) para fines de depuración como HMR, etc.


TDLR: esto es normal (funciona según lo previsto hasta ahora). Más información en el enlace dado arriba sobre cómo hacer que funcione.

about 4 years ago · Juan Pablo Isaza Report

0

Después de mucha investigación y depuración, se me ocurrió una nueva idea. En lugar de ejecutar npm run start o yarn start que contiene el script "nuxt start" dentro del archivo package.json. Agregué un nuevo script con el nombre "express-start": "cross-env NODE_ENV=production node api/index.js" . Que ejecuta el servidor express y los archivos estáticos nuxt. Actualmente estoy creando una plantilla para que sea más fácil para aquellos que enfrentarán este desafío.

Enlace a un modelo que creé después de resolver el problema. Modelo estándar de ExpressJs y NuxtJs

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!