mysql - 服务器 Ajax/http 上的 Nodejs 调用不读取新数据 Mongodb

标签 mysql angularjs node.js mongodb node-mysql

我最近开始将本地测试的 Node、mongo、angularjs 站点推送到 DigitalOcean 上托管的实时环境。

我的 ajax/http 调用不一致。在我的本地计算机上,我能够执行 http 请求并更新 angularjs 变量,这反过来会填充前端的 html。一切都很好!现在在我的服务器上使用相同的环境设置进行测试,变量加载新数据的唯一时间是当我刷新页面时。

例如(不是我的实际代码):

Nodejs - app.js:

app.get('/getlist', requiredAuthentication, function(req, res) {
    list.find({'username':req.session.user.username}, function(err,list) {
    res.send(list);
});});

Angularjs - angular_app.js:

$scope.onClick = function (points, evt) {
    $http.get('/getlist').then(function(response) {
     $rootScope.list = response;});
};

Jade - 家:

li(ng-repeat="row in list")

就像我说的,这在我的本地计算机上完美运行,但在我的服务器上我必须刷新页面才能加载新数据,就好像我的变量缓存在服务器上一样。

任何想法都会有帮助。

谢谢!

-------- 更新 - 测试 v0.1 --------

经过一些深入的测试,我发现了这一点,但仍然没有解决。

如果我通过 http post 添加新数据,然后查看我的 mongo 数据库,我会看到新数据。然后,当我单击 ng-click 通过 HTTP 检索新数据时,它不会返回新数据,而是停留在旧数据上。

如果我让页面打开 10 分钟,然后单击按钮,它就会检索新数据,这真是太糟糕了。

听起来像缓存,但为什么它在我的本地完美运行?

查看控制台 > 网络 > 状态时。代码是 304,这意味着没有任何改变?

-------- 更新 - 测试 v0.2 --------

我现在已经使用控制台中的日志测试了返回数据,并且使用 ajax jQuery 执行了 GET,并且我遇到了相同的问题/行为,它停留在相同的数据集合上,所以我的结论必须是 Node.js 导致了这些问题。

-------- 更新 - 测试 v0.3 --------

好吧,我已经完全停止了 mongo 并使用 node-mysql 将所有内容切换到 mysql。再一次,在我的本地它就像一台机器一样工作,而在我的实际服务器上它在读取新数据时很滞后。

我使用 Sequal PRO 访问 mysql,并开始向表中添加新条目。 在浏览器中打开我的网址,它立即显示新条目。但此后,添加新条目或删除条目仅在10分钟左右才显示效果。

所以我的结论是 Nodejs 的缓存就像母亲一样,有人知道更多吗?我真的是唯一一个经历过这种事的人吗?

最佳答案

尝试使用 res.json 从 Node 返回数据

app.get('/getlist', requiredAuthentication, function(req, res) 
{
    list.find({'username':req.session.user.username}, function(err,list) 
    {
      res.json(list);
     });
});

关于mysql - 服务器 Ajax/http 上的 Nodejs 调用不读取新数据 Mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33078922/

相关文章:

c# - SSH 使用 C# 建立 MySQL 连接隧道

mysql - mysqld pid文件错误后gitlab无法启动,以及innodb文件大小问题

javascript - Angular 2 图表 - 改变点半径

javascript - AngularJS put方法上传文件没有数据

javascript - 在接口(interface) Typescript 中定义回调

javascript - 以下代码是使用 html、expressJS 生成 Web 表单并将提交的详细信息保存在 mongodb 中,但出现 'post' 错误, 'get' 有效

mysql插入自增列

php - Laravel 跟踪一行中的单个单元格

angularjs - 在 ng-show 之后将焦点设置在输入字段上

javascript - Mongoose 和 Express : How to properly Remove, 创建和存储引用数据