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

153
Views
¿Cómo puedo redirigir al usuario a un esquema de URL personalizado con Express.js y node-fetch?

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.

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

0

Este es mi entendimiento de su intención:

  1. El usuario en el navegador visita http://somehost:8000/someUrl y obtiene una página
  2. Inicia el servidor en el puerto 3000, el servidor 8000 de alguna manera detecta esto
  3. Las solicitudes posteriores a http://somehost:8000/someUrl ahora se redirigen a http://somehost:3000/ differentUrl y, por lo tanto, el usuario ahora navega entre las páginas del servidor 3000. Tenga en cuenta que el servidor 8000 le dice al navegador: "no mire aquí, vaya al servidor 3000 para obtener su respuesta".

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 } })
about 4 years ago · Juan Pablo Isaza Report

0

Creo que puedes hacerlo con el encabezado de respuesta http de la location .

 res.location('example://...')
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!