Я использую сфинкса для запуска следующего набора запросов с помощью nodejs: -Float == Количество Assertion ошибка при использовании сфинкса с nodejs
sphClient.SetGeoAnchor("latitude", "longitude", lat, long);
sphClient.SetFilterRange("@geodist",0,1000);
var res = sphClient.Query("@country country_name");
Однако, когда я запускаю это дает мне следующую ошибку: -
throw new assert.AssertionError({
^
AssertionError: "number" == "float"
at SphinxClient.SetGeoAnchor (/node_modules/sphinxapi/lib/sphinxapi.js:395:9)
at Socket.<anonymous> (/node_modules/posts/egx.js:331:15)
at Socket.EventEmitter.emit [as $emit] (events.js:95:17)
at SocketNamespace.handlePacket (/node_modules/socket.io/lib/namespace.js:335:22)
at Manager.onClientMessage (/node_modules/socket.io/lib/manager.js:488:38)
at WebSocket.Transport.onMessage (/node_modules/socket.io/lib/transport.js:387:20)
at Parser.<anonymous> (/node_modules/socket.io/lib/transports/websocket/hybi-16.js:39:10)
at Parser.EventEmitter.emit (events.js:95:17)
at finish (/node_modules/socket.io/lib/transports/websocket/hybi-16.js:288:16)
at Parser.expectHandler (/node_modules/socket.io/lib/transports/websocket/hybi-16.js:299:15)
Я даже понимаю, в чем проблема, после просмотра sphinxapi.js, я узнал, что он сравнивает TYPEOF (лат), TypeOf (длинный) с «поплавком», однако nodejs возвращает только «номер». Я пробовал parseFloat. Также изменения сравнения с «номером» дает мне другую ошибку, как: -
/node_modules/sphinxapi/lib/sphinxapi.js:79
l += Number(obj.hasOwnProperty(k));
^
ReferenceError: obj is not defined
at len (/node_modules/sphinxapi/lib/sphinxapi.js:79:17)
at SphinxClient.AddQuery (/node_modules/sphinxapi/lib/sphinxapi.js:572:6)
at SphinxClient.Query (/node_modules/sphinxapi/lib/sphinxapi.js:476:7)
at Socket.<anonymous> (/node_modules/posts/egx.js:333:25)
at Socket.EventEmitter.emit [as $emit] (events.js:95:17)
at SocketNamespace.handlePacket (/node_modules/socket.io/lib/namespace.js:335:22)
at Manager.onClientMessage (/node_modules/socket.io/lib/manager.js:488:38)
at WebSocket.Transport.onMessage (/node_modules/socket.io/lib/transport.js:387:20)
at Parser.<anonymous> (/node_modules/socket.io/lib/transports/websocket/hybi-16.js:39:10)
at Parser.EventEmitter.emit (events.js:95:17)
Когда sphinxapi.js был перенесен с другого языка, кодер, вероятно, забыл изменить утверждения, чтобы учетная запись JS не имела прямого типа «float». Просто измените строку assert. – barryhunter