Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

107
Vistas
Expresar publicación/enviar mensaje a la ruta

Tengo la ruta/prueba:

 app.route('/test', (req,res)=>{ res.sendFile(__dirname + "\\myhtml.html") })

Y necesito que el nodo active un evento en mi ruta /test, y el archivo myhtml.html puede escuchar ese evento, recuperar los datos enviados cuando el servidor lo activa. Mi código de ejemplo (no real) es:

 page = app.route('/test', (req,res)=>{ res.sendFile(__dirname + "\\myhtml.html") }) page.fire('mything',{one:2})

Y luego en myhtml.html,

 idk_express_parent_thing.on('mything', (res)=>{console.log(res)})

Sin socket io, debe ser native express, js, idk.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

No estoy seguro de si esto puede ser de ayuda, pero voy a intentarlo.

Pensé en tres posibles soluciones...:

  1. Tal vez, el socketing puede ser una solución en su caso, usando Socket.IO, o algo así. En este caso, el back-end enviaría el archivo al cliente, que cuando se procese se conectaría al servidor y escucharía algo, tal vez usando alguna identificación. Solo creo que tal vez traería demasiada complejidad, pero... es tal vez una solución...

  2. Otro, probablemente más adecuado, puede ser que almacene el mensaje que necesita enviar en algún lugar (recomiendo Redis, o puede intentar usarlo en la memoria del servidor) y luego, después de que el servidor envíe el archivo al cliente, el cliente realiza una solicitud al servidor, solicitando ese mensaje enviando la clave Redis utilizada para identificar el mensaje almacenado

  3. Una última, tal vez usar cookies, sesión y relacionados... Donde, simplemente guardaría el mensaje en cookies/sesión, junto con el archivo, luego, el archivo tendría acceso a los datos cuando esté en el cliente

También investigué un poco y encontré este StackOverflow anwnser (la segunda respuesta tal vez te ayude, la primera habla sobre EJS y otros motores... que dijiste que no puedes usar)

¡Espero eso ayude! ;D

about 4 years ago · Juan Pablo Isaza Denunciar

0

usted tiene que establecer la ruta correctamente. si tiene el archivo myhtml.html en el directorio raíz, pruebe app.route('/test', (req,res)=>{ res.sendFile(__dirname + "/myhtml.html") })

será trabajo

about 4 years ago · Juan Pablo Isaza Denunciar

0

Así que estoy respondiendo mi propia pregunta porque descubrí js WebSockets y WebSocket-Node lib: permiten una comunicación dúplex completa entre el servidor y el cliente, y son fáciles de usar. aquí está el código del servidor:

 const nwss = require('websocket').server; const http = require("http"); var server = http.createServer(function(request, response) { console.log(' Received request for ' + request.url); response.write("example") response.end(); }); server.listen(8000, ()=>{console.log("ready")}) ws = new nwss({ httpServer: server, autoAcceptConnections: false })
 ws.on('request', (req)=>{ let conn = req.accept('example-protocol', req.origin); console.log('accepted ' + conn.remoteAddress) conn.on('message', (msg)=>{ if (msg.type == 'utf8') { console.log('Recieved utf8 ' + msg.utf8Data); conn.sendUTF(`thanks for "${msg.utf8Data}"`) } }) conn.on('close', ()=>{ console.log(`${conn.remoteAddress} disconnected.`) }) })

(es una mala idea permitir que otros sitios se conecten, así que use una instrucción if para verificar si el origen es ws://yoursiteurl/) Y el cliente:

 let socket_url = "ws://" + new URL(location.href).host + "/" let WSocket = window['MozWebSocket'] ? MozWebSocket : WebSocket; let socket_ = new WSocket(socket_url, 'example-protocol') //the example-protocol is the same i put in the server code, as it has to be. function start() { socket_.onmessage = (msg)=>{ console.log(msg.data) } socket_.send("hi, do you read? :P") } //call start once it connects.
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda