meteor-geocoder reverse callback TypeError: number is not a function
meteor-geocoder reverse callback TypeError: number is not a function
我在使用 aldeed:geocoder@0.3.7:
进行反向查找时遇到错误
var geo = new GeoCoder();
var addr = geo.reverse(45.767, 4.833);
给出以下错误:
W20151006-08:26:25.947(2)? (STDERR) C:\Users\steets\AppData\Local\.meteor\packages\aldeed_geocode
r[=11=].3.7\npm\node_modules\node-geocoder\lib\geocoder.js:60
W20151006-08:26:25.947(2)? (STDERR) return callback(err, data);
W20151006-08:26:25.947(2)? (STDERR) ^
W20151006-08:26:25.947(2)? (STDERR) TypeError: number is not a function
这发生在我的开发机器和部署中。
使用 node-inspector 我已经将问题追踪到 Meteor.wrapAsync
在 aldeed_geocoder.js:61:
GeoCoder.prototype.reverse = function geoCoderReverse(lat, lng, callback) {
if (callback) {
callback = Meteor.bindEnvironment(callback, function (error) {
if (error) throw error;
});
rv(lat, lng, this.options, callback);
} else {
return Meteor.wrapAsync(rv)(lat, lng, this.options);
}
};
(rv
调用了node-geocoder
的reverse
函数,报错中提到)
然后 wrapAsync
在最后一行失败:
return fut ? fut.wait() : result;
运行 meteor update
表示我有最新的meteor和packages.
我尝试在 vanilla 应用程序中重现此错误,遵循包自述文件 (https://github.com/aldeed/meteor-geocoder):
meteor create test
cd test
meteor add aldeed:geocoder
meteor
然后在新终端中:
meteor shell
> var geo = new GeoCoder()
> geo.geocode('29 champs elysée paris')
[ { formattedAddress: '29 Av. des Champs-Élysées, 75008 Paris, France',
....
zipcode: '75008' } ]
> geo.reverse(45.767, 4.833)
stream.js:94
throw er; // Unhandled stream error in pipe.
^
Error: read ECONNRESET
at errnoException (net.js:905:11)
at TCP.onread (net.js:559:19)
这是一个不同的错误,但它仍然不起作用,这可能是根本原因。
我最近升级到 meteor 1.2。此代码过去在 meteor 1.1 下运行良好。
如有任何帮助,我们将不胜感激。我完全不知所措。
目前简单的解决方法是将包克隆到项目目录中的 'packages' 文件夹并更改错误行 geocoder.js:34。它应该是这样的:
g.reverse({lat: lat, lon: lng}, callback);
我希望 aldeed 能尽快解决 github 中的问题。我现在就尝试做一个 PR。
结果是一个错误。由包维护者修复:)
我在使用 aldeed:geocoder@0.3.7:
进行反向查找时遇到错误var geo = new GeoCoder();
var addr = geo.reverse(45.767, 4.833);
给出以下错误:
W20151006-08:26:25.947(2)? (STDERR) C:\Users\steets\AppData\Local\.meteor\packages\aldeed_geocode
r[=11=].3.7\npm\node_modules\node-geocoder\lib\geocoder.js:60
W20151006-08:26:25.947(2)? (STDERR) return callback(err, data);
W20151006-08:26:25.947(2)? (STDERR) ^
W20151006-08:26:25.947(2)? (STDERR) TypeError: number is not a function
这发生在我的开发机器和部署中。
使用 node-inspector 我已经将问题追踪到 Meteor.wrapAsync
在 aldeed_geocoder.js:61:
GeoCoder.prototype.reverse = function geoCoderReverse(lat, lng, callback) {
if (callback) {
callback = Meteor.bindEnvironment(callback, function (error) {
if (error) throw error;
});
rv(lat, lng, this.options, callback);
} else {
return Meteor.wrapAsync(rv)(lat, lng, this.options);
}
};
(rv
调用了node-geocoder
的reverse
函数,报错中提到)
然后 wrapAsync
在最后一行失败:
return fut ? fut.wait() : result;
运行 meteor update
表示我有最新的meteor和packages.
我尝试在 vanilla 应用程序中重现此错误,遵循包自述文件 (https://github.com/aldeed/meteor-geocoder):
meteor create test
cd test
meteor add aldeed:geocoder
meteor
然后在新终端中:
meteor shell
> var geo = new GeoCoder()
> geo.geocode('29 champs elysée paris')
[ { formattedAddress: '29 Av. des Champs-Élysées, 75008 Paris, France',
....
zipcode: '75008' } ]
> geo.reverse(45.767, 4.833)
stream.js:94
throw er; // Unhandled stream error in pipe.
^
Error: read ECONNRESET
at errnoException (net.js:905:11)
at TCP.onread (net.js:559:19)
这是一个不同的错误,但它仍然不起作用,这可能是根本原因。
我最近升级到 meteor 1.2。此代码过去在 meteor 1.1 下运行良好。
如有任何帮助,我们将不胜感激。我完全不知所措。
目前简单的解决方法是将包克隆到项目目录中的 'packages' 文件夹并更改错误行 geocoder.js:34。它应该是这样的:
g.reverse({lat: lat, lon: lng}, callback);
我希望 aldeed 能尽快解决 github 中的问题。我现在就尝试做一个 PR。
结果是一个错误。由包维护者修复:)