Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果NodeJS中的数据发生更改,如何从文件中重新提取?_Javascript_Json_Node.js - Fatal编程技术网

Javascript 如果NodeJS中的数据发生更改,如何从文件中重新提取?

Javascript 如果NodeJS中的数据发生更改,如何从文件中重新提取?,javascript,json,node.js,Javascript,Json,Node.js,我的javascript目前正在从我在NodeJS中创建的服务器中提取JSON数据。数据来自google电子表格,因此每当我对电子表格进行更改时,JSON数据也会更改 我不想刷新我的网站来应用更新的电子表格数据。如何在每次发生更改时从JSON文件中提取?有人提到在文件上使用时间戳,如果时间戳更改,则从文件中提取。但我找不到一个例子 现在,我正在将数据从节点服务器中的/最新路径拉到javascript。代码如下: app.get('/latest', function(req,res) {

我的javascript目前正在从我在NodeJS中创建的服务器中提取JSON数据。数据来自google电子表格,因此每当我对电子表格进行更改时,JSON数据也会更改

我不想刷新我的网站来应用更新的电子表格数据。如何在每次发生更改时从JSON文件中提取?有人提到在文件上使用时间戳,如果时间戳更改,则从文件中提取。但我找不到一个例子

现在,我正在将数据从节点服务器中的/最新路径拉到javascript。代码如下:

app.get('/latest', function(req,res) {
    var fs = require('fs');
    var obj;
    fs.readFile('public/announcementCurrent.json', function (err, data) {
      if (err) throw err;
      obj = JSON.parse(data);
      res.json(obj)
    });
})
以下是我在javascript中调用路由的方式: $http.get

当announcementCurrent.json文件更改而无需刷新时,如何再次调用路由


任何帮助都很好,谢谢

在javascript中实时获取更新数据而不必刷新页面的方法就是XMl-Http请求(又称AJAX)的全部思想

基本上,您需要在某个时间间隔或您选择的用户操作中查询GoogleAPI以获取最新数据并相应地更新页面

您应该尝试获取有关如何进行ajax调用以及如何查询google电子表格API的更多信息。基本上,以jQuery为例,它看起来像:

$.get('http://google-spreadsheet-api-url', function( data ) {
  // Dynamically refresh the content of the page using data
})

@客户端的用户3726872每隔5秒或其他时间执行一次$http.get。是否只有在文档更改后才执行此操作?可能使用时间戳?@user3726872当然,在实际读取整个文件之前,使用读取和存储时间戳并进行比较。如果304未修改状态代码未更改,则发回该代码。@user3726872您知道如何将mtime“2009-06-29T11:11:40Z”转换为类似于1427382526的单位时间戳吗?@user3726872例如,您可以使用矩量.js之类的库。力矩'2009-06-29T11:11:40Z'。的值等于1246273900000