Tengo una aplicación web que puede renderizar sitios incrustados. El problema es que este sitio solo envía solicitudes POST .
Así que pensé en servirlo usando express, luego busqué un poco aquí y obtuve el siguiente código para servirlo, escuchando todas las solicitudes GET como páginas de vuetify:
const express = require('express'); const path = require('path'); const hostname = 'localhost'; const port = 3000; const app = express(); app.use(express.static(path.join(__dirname, 'dist'))); app.get('*', (req, res) => { res.sendFile(__dirname, '/dist/index.html'); }); app.listen(port, hostname, () => { console.log("Listening at http://%s:%s/", hostname, port); });Luego pensé en agregar un método de publicación para recibir los parámetros que envía la página:
const express = require('express'); const path = require('path'); const hostname = 'localhost'; const port = 3000; const app = express(); app.use(express.static(path.join(__dirname, 'dist'))); app.get('*', (req, res) => { res.sendFile(__dirname, '/dist/index.html'); }); app.get('*', (req, res) => { res.sendFile(__dirname, '/dist/index.html'); }); app.post('/data', (req, res) => { const id = req.body.id; res.sendFile(__dirname, '/dist/index.html'); }); app.listen(port, hostname, () => { console.log("Listening at http://%s:%s/", hostname, port); });¿Cómo paso este argumento a vue?
¿Es esta la mejor manera de servir vue con una solicitud posterior?
Solo está enviando el archivo index.html , hay otros archivos importantes generados por vue.js
En el siguiente archivo, tengo un middleware en funcionamiento para servir una aplicación vue que está integrada en ../../../frontend/dist/ .
https://github.com/marekvospel/libregifts/blob/next/apps/backend/src/router/index.ts
Lo único importante son las 2 funciones de middleware. Puede reemplazar la condición '/api' con una verificación de método.
if (req.originalUrl.startsWith('/api')) next()