MongoDB是否不自动刷新数据? [英] MongoDB does not refresh data automatically?

查看:69
本文介绍了MongoDB是否不自动刷新数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 MEAN 堆栈进行开发.并且在将一些数据添加到MongoDB之后,仅在重新启动NodeJS服务器之后,新数据才在前端可用.有什么方法可以在线更新MongoDB数据吗?

I use MEAN stack for developing. And after adding some data to MongoDB, the new data is available in front-end only after restarting NodeJS server. There is any way to update MongoDB data 'online'?

这是我的API(Node.js):

This is my 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;

我正在通过Mongo Shell添加数据,它看起来像这样: db.videos.insert({'idv':'8ifJvMlITNc'}).之后,我通过Ajax从 videos 表中获取所有数据.在重新启动Node.js服务器

I am adding data via Mongo Shell, it looks like this: db.videos.insert({'idv': '8ifJvMlITNc'}). After that, I get all data from videos table via Ajax. There is no new data in the response from the server until I restart Node.js server

推荐答案

在您的Node.js应用中,您仅获取一次数据.收到请求后,您不会获取它.将代码更改为以下代码,您无需重新启动即可读取数据:

In your Node.js app you are fetching the data only once. You are not fetching it when request is received. Change the code to following and you don't have to restart for reading data:

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;

希望这会有所帮助.

这篇关于MongoDB是否不自动刷新数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆