Se inserta un nuevo mensaje en mongoDB desde otra aplicación a la que no tengo acceso al código. Sin embargo, tengo las credenciales de la base de datos. Quiero que ese mensaje se muestre en mi aplicación en el momento en que se inserte en mongoDB. No quiero hacer un bucle. Quiero mostrar los nuevos datos en el momento en que se insertan o actualizan.
Un ejemplo vivo: los sitios web de subastas generalmente actualizan las ofertas más recientes muy rápido, unos segundos antes de que finalice la fecha límite de la subasta. Me pregunto cómo funciona eso sin bucles. Como una aplicación de chat, pero esperando nuevos datos en la base de datos en lugar de que otro usuario escriba un mensaje. Pero en mi situación, otra aplicación inserta o actualiza los datos.
Alguna información adicional: también estoy usando enrutadores / express y plantilla hbs html. Estoy lo suficientemente feliz si tengo al menos una idea general de cómo hacer esto, sin trabajar con enrutadores / express todavía. Pero si pueden encontrar una solución combinada, ¡sería perfecta!
Tengo algo como esto hasta ahora, pero todavía es un poco confuso. Prácticamente puedes ignorar mi código ya que no funciona completamente. Pero tal vez ayude un poco.
(some more code above ...) const WebSocketServer = new WebSocket.Server({port: 8082}) WebSocketServer.on('connection', ws => { console.log('New client connected!') ws.on('message', async (data) => { console.log(`Client has sent us: ${data}`) const connMtlinki = require('../src/db/mtlinki') const connection = connMtlinki.connect() const database = connMtlinki.db('MTLINKi') const MacroVariableHistory = database.collection('MacroVariableHistory') const machines = await MacroVariableHistory.findOne({ L0Name: data }) console.log(machines) ws.send(machines) }) ws.on('close', () => { console.log('Client has disconnected!') })