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

222
Views
Ejecutar un middleware de servidor Express junto con Nuxt

Mis terminales no funcionan, y muy probablemente porque el servidor en el que se encuentra express no se ejecuta correctamente. Ejecuto mis archivos con npm run dev y mis archivos express están en /middleware . El punto final del que intento obtener datos está en una ruta en /middleware/routes/crash.js . En mi archivo vue, tengo axios realizando una solicitud de obtención a localhost:3000/api/crash/:id , sin embargo, axios devuelve un error 400 que indica que el archivo no se ha encontrado ejecutándose en el servidor.

paquete.json:

 "scripts": { "dev": "nuxt" }

/middleware/index.js:

 const express = require('express') const app = express() const crash = require('./routes/crash') app.use(crash) module.exports = { path: '/middleware', handler: app }

/middleware/routes/crash.js:

 const { Router } = require('express') const router = Router() const crypto = require("crypto"); ... router.get('/api/crash/:id')
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Necesitas tener al menos esto en tu
archivo nuxt.config.js

 export default { ssr: true, target: 'server', modules: [ '@nuxtjs/axios', ], serverMiddleware: [ { path: '/api', handler: '~/server-middleware/rest.js' }, ], }

Y un archivo /server-middleware/rest.js con

 const app = require('express')() app.get('/what-is-my-name/:name', (req, res) => { res.json({ name: req.params.name, age: 12 }) }) module.exports = app

Luego, puede usarlo así en cualquier archivo .vue

 <template> <div> <input id="name" v-model="name" type="text" name="name" /> <button @click="callNuxtApi">try local Nuxt API</button> <div> Response from the backend: <pre>{{ response }}</pre> </div> </div> </template> <script> export default { name: 'AccordionList', data() { return { name: 'bob', response: {}, } }, methods: { async callNuxtApi() { const response = await this.$axios.$get( `/api/what-is-my-name/${this.name}` ) this.response = response }, }, } </script>

Entonces, esto funcionará con éxito localmente (estoy usando un name dinámico aquí).

ingrese la descripción de la imagen aquí


Luego, deberá implementarlo en un VPS, pero hay un pequeño problema: deberá implementar su aplicación y enviar el directorio server-middleware usted mismo como se explica aquí: https://github.com/nuxt/nuxt .js/issues/9158#issuecomment-820676790

Por eso, plataformas como Render.com o Heroku probablemente no sean las más fáciles para este tipo de tareas (ni siquiera estoy seguro de que esto sea posible).

Algunos VPS caseros o el uso de Nuxt3 probablemente serían más fáciles en general, en mi opinión.

over 4 years ago · Santiago Trujillo 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!