diff --git a/binding/javascript/ReadMe.md b/binding/javascript/ReadMe.md index a53c28b..a8da78f 100644 --- a/binding/javascript/ReadMe.md +++ b/binding/javascript/ReadMe.md @@ -7,6 +7,13 @@ npm install ip2region.js --save ``` +### 关于查询 API +查询 API 的原型为: +```javascript +search(ip: string | Buffer): string; +``` +如果查询出错会抛异常,查询成功则会返回字符的 `region` 信息,如果指定的 IP 查询不到则会返回空字符串 `""`。 + ### 关于 IPv4 和 IPv6 该 xdb 查询客户端实现同时支持对 IPv4 和 IPv6 的查询,使用方式如下: ```javascript diff --git a/binding/javascript/package.json b/binding/javascript/package.json index 2b7b3db..2a831a2 100644 --- a/binding/javascript/package.json +++ b/binding/javascript/package.json @@ -1,6 +1,6 @@ { "name": "ip2region.js", - "version": "3.1.5", + "version": "3.1.6", "description": "official javascript binding for ip2region with both IPv4 and IPv6 supported ", "type": "module", "main": "index.js", diff --git a/binding/javascript/searcher.js b/binding/javascript/searcher.js index b2e29a7..698748d 100644 --- a/binding/javascript/searcher.js +++ b/binding/javascript/searcher.js @@ -70,7 +70,7 @@ export class Searcher { const bytes = ipBytes.length, dBytes = ipBytes.length << 1; const indexSize = this.version.indexSize; const buff = Buffer.alloc(indexSize); - let dLen = -1, dPtr = -1, l = 0, h = (ePtr - sPtr) / indexSize; + let dLen = 0, dPtr = 0, l = 0, h = (ePtr - sPtr) / indexSize; while (l <= h) { const m = (l + h) >> 1; const p = sPtr + m * indexSize; @@ -90,8 +90,8 @@ export class Searcher { // empty match interception. // and this could be a case. - if (dPtr == -1) { - return null; + if (dLen == 0) { + return ""; } // console.log(`dLen: ${dLen}, dPtr: ${dPtr}`);