Node.js中的可变变量

时间:2012-12-10 01:15:11

标签: javascript json node.js express geojson

请原谅我,如果这是一个完全愚蠢的问题,但我无法弄明白。

背景资料

我正在使用Express框架在Node.js中编写应用程序。我有一个URI映射,旨在分析一些Twitter数据,以便在某些聚合单元中对给定主题的情绪进行分析,并将包含这些结果的GeoJSON对象返回给客户端。

以下是有关数据的一些细节。

  • 聚合单位,美国各州,作为点存储在GeoJSON文件中,通过require调用加载。这些点稍后将用于在Leaflet地图中制作标记。
  • 推文存储在MongoDB数据库中,使用mongodb驱动程序访问。

这是改变这些GeoJSON点的过程

  • 使用require
  • 加载GeoJSON
  • 查询MongoDB数据库以获取适当的推文
  • 迭代GeoJSON文件中的功能
    • 迭代结果集中的推文
      • 如果推文来自该功能
        • 分析
        • 中的情绪
        • 使用情感
        • 对功能进行分类
        • marker.properties.class设置为分类
  • 将修改后的GeoJSON写入回复

问题

所以这是我的问题,我用require加载的GeoJSON永远不会改变。

问题

通过调用require来加载数据是否可变?如果没有,是否有一种简单的方法可以使它变得可变,我的意思是比copying the object更简单?

奖金问题

当Node服务器与Express框架一起运行时,有谁知道为什么console.log()不起作用?我发誓以前做过。

1 个答案:

答案 0 :(得分:2)

可以从缓存中删除模块。你只需要这样做:

delete require.cache[moduleName];

无论如何,这不是最佳方法。

导出构造函数并在需要时实例化新对象要好得多。例如:

//in geo.js
function Geo() {...}
module.exports = Geo;

//in another module
var Geo = require('./geo.js');
var geo = new Geo();