Uso MEAN stack para desarrollar. Y después de agregar algunos datos a MongoDB, los nuevos datos están disponibles en el front-end solo después de reiniciar el servidor NodeJS. ¿Hay alguna forma de actualizar los datos de MongoDB 'en línea'?
Esta es mi API (Node.js):
var express = require('express'); var mongoose = require('mongoose'); var router = express.Router(); mongoose.connect('mongodb://localhost/vt'); var Video = mongoose.Schema({ idv: String, thumbnail: Number, aud : String, title : String, description : String }); var db; var video = mongoose.model('video',Video); video.find({}, function (err, data) { db = data; }); router.get('/api/videos', function (req, res) { res.send(db); }); module.exports = router; Estoy agregando datos a través de Mongo Shell, se ve así: db.videos.insert({'idv': '8ifJvMlITNc'}) . Después de eso, obtengo todos los datos de la tabla de videos a través de Ajax. No hay datos nuevos en la respuesta del servidor hasta que reinicio el servidor Node.js
En su aplicación Node.js, obtiene los datos solo una vez. No lo está recuperando cuando se recibe la solicitud. Cambie el código a lo siguiente y no tendrá que reiniciar para leer datos:
var express = require('express'); var mongoose = require('mongoose'); var router = express.Router(); mongoose.connect('mongodb://localhost/vt'); var Video = mongoose.Schema({ idv: String, thumbnail: Number, aud : String, title : String, description : String }); var video = mongoose.model('video',Video); router.get('/api/videos', function (req, res) { video.findOne({}, function (err, data) { if (err || !data) { res.status(500).send(); } res.status(200).send(data); }); }); module.exports = router;Espero que esto ayude.