0

如果这是一个完全愚蠢的问题,请原谅我,但我就是想不通。

背景信息

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

以下是有关数据的一些详细信息。

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

这是更改这些 GeoJSON 点的过程

  • 加载 GeoJSONrequire
  • 查询 MongoDB 数据库以获取适当的推文
  • 迭代 GeoJSON 文件中的特征
    • 遍历结果集中的推文
      • 如果推文来自该功能
        • 分析内心的情绪
        • 使用情绪对特征进行分类
        • 设置marker.properties.class为分类
  • 将更改后的 GeoJSON 写入响应

问题

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

问题

是否通过调用requiremutable 加载数据?如果没有,是否有一种简单的方法可以使其可变,我的意思是比复制对象更简单?

奖金问题

有谁知道console.log()当 Node 服务器使用 Express 框架运行时为什么不工作?我发誓以前是这样的。

4

1 回答 1

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();
于 2012-12-10T17:43:09.137 回答