Lo siento si mi uso de palabras relacionadas con el servidor es incorrecto, soy nuevo en esto. Tengo dos servidores Express.js, uno en el puerto 3000 y otro en el puerto 8000. El navegador muestra dos archivos HTML diferentes en estos dos puertos. Primero inicio el servidor en el puerto 8000. Tan pronto como inicie el servidor en el puerto 3000, quiero redirigir al usuario que ve el sitio en el puerto 8000 a un esquema de URL personalizado para abrir una aplicación instalada (usando "example://" ). En este momento, console.log "recibió" en el puerto 8000 tan pronto como se inicia el otro servidor. ¿Cómo puedo redirigir al usuario a la URL "ejemplo://" para que se abra la aplicación?
Este es mi código para el servidor uno (puerto 3000):
import express, { response } from "express"; import fetch from "node-fetch"; import * as path from 'path'; import { fileURLToPath } from "url"; const touchpointApp = express(); const port = 3000; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); touchpointApp.get('/', (req, res) => { res.sendFile('/index.html', { root: __dirname }); }); touchpointApp.listen(port, () => { console.log('Running on Port 3000'); fetch("http://192.168.2.127:8000/launch").then(res => {console.log("Success")}); })Y este es mi código para el servidor dos (puerto 8000):
const { response } = require('express'); const express = require('express'); const open = require('open'); const router = express.Router(); const path = require('path'); const smartMirror = express(); router.get('/', function(req, res){ res.sendFile(path.join(__dirname + '/index.html')); }); smartMirror.use('/', router); smartMirror.listen(process.env.port || 8000); console.log('Running on Port 8000'); smartMirror.get("/launch", (req, res) => { console.log("Received"); res.status(200); })El código es actualmente el monstruo de Frankenstein debido a las pruebas anteriores. Estoy usando NodeJS para iniciar los servidores.
Este es mi entendimiento de su intención:
Si esa es su intención, puede enviar una redirección por
smartMirror.get("/launch", (req, res) => { res.redirect("http://somehost:3000/differentUrl"); })Por lo tanto, es posible que tenga un código como
smartMirror.get("/launch", (req, res) => { // assuming that you can figure out that the 3000 server is running if ( the3000ServerIsRunning ) { let originalURL = req.originalUrl; let redirectedURL = // code here to figure out the new URL res.redirect("http://somehost:3000" + redirectedURL); else { // send a local respons } })Creo que puedes hacerlo con el encabezado de respuesta http de la location .
res.location('example://...')