将函数添加到已加载的node.js模块

大约2年前,我写了一个node.js模块,加载一个现有的模块( jsts )并添加了一些function。 这是一个最小的例子:

global.jsts = require("jsts"); global.jsts.algorithm.test = function() {console.log("hi")} global.jsts.algorithm.test(); 

我在节点(v0.10.18)中运行它并打印

 hi 

现在,我在nodejs(v4.2.6)中运行相同的代码并打印:

 TypeError: global.jsts.algorithm.test is not a function 

有没有办法使它与当前版本的nodejs一起工作?


编辑:我也做了:

 global.jsts.algorithm.x = 1 console.log(global.jsts.algorithm) 

这里是输出:

 { Centroid: { [Function: ge] area2: [Function], centroid3: [Function], getCentroid: [Function] }, CGAlgorithms: { [Function: he] orientationIndex: [Function], signedArea: [Function], distanceLineLine: [Function], isPointInRing: [Function], computeLength: [Function], isCCW: [Function], locatePointInRing: [Function], distancePointLinePerpendicular: [Function], computeOrientation: [Function], distancePointLine: [Function], isOnLine: [Function], CLOCKWISE: -1, RIGHT: -1, COUNTERCLOCKWISE: 1, LEFT: 1, COLLINEAR: 0, STRAIGHT: 0 }, ConvexHull: { [Function: me] extractCoordinates: [Function], RadialComparator: { [Function: ye] polarCompare: [Function] } }, InteriorPointArea: { [Function: oi] centre: [Function], avg: [Function], SafeBisectorFinder: { [Function: ai] getBisectorY: [Function] } }, InteriorPointLine: [Function: ui], InteriorPointPoint: [Function: li], RobustLineIntersector: { [Function: ae] nearestEndpoint: [Function] }, MCPointInRing: { [Function: Ii] MCSelecter: [Function: Ni] }, MinimumBoundingCircle: { [Function: wi] pointWitMinAngleWithX: [Function], lowestPoint: [Function], pointWithMinAngleWithSegment: [Function] }, MinimumDiameter: { [Function: Li] nextIndex: [Function], computeC: [Function], getMinimumDiameter: [Function], getMinimumRectangle: [Function], computeSegmentForLine: [Function] } }