首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开maxmind并在nodejs中访问它

打开maxmind并在nodejs中访问它
EN

Stack Overflow用户
提问于 2019-08-16 08:56:19
回答 1查看 119关注 0票数 1

以前我用的是这样的:

在Nodejs中打开Maxmind db

现在,按照node 10更新模块。所以,需要帮助来整合它。

参考文献

代码语言:javascript
复制
const maxmind = require('maxmind');
exports.getIsoCountry = function(pIpAddress) {

  modules.debugLog('inside getIsoCountry : ',pIpAddress);

  maxmind.open(sGlAppVariable.maxmindDbPath)
  .then(function(lookup) {
    var ipData = lookup.get(pIpAddress);
    //console.log(ipData);
    console.log('iso_code',ipData.country.iso_code);
    return ipData.country.iso_code;
  });

}

console.log(getIsoCountry('66.6.44.4'));它应该打印国家代码。但它永远是undefined。因为这是个承诺。

如何调用这个getIsoCountry函数?

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-16 12:19:49

您需要等待执行完成,为此,您应该使用承诺

修改您的代码如下,然后它应该工作:

代码语言:javascript
复制
const maxmind = require('maxmind');
exports.getIsoCountry = function(pIpAddress) {
  return new Promise((resolve, reject) => {
    modules.debugLog('inside getIsoCountry : ',pIpAddress);
      maxmind.open(sGlAppVariable.maxmindDbPath)
      .then(function(lookup) {
        var ipData = lookup.get(pIpAddress);
        console.log('iso_code',ipData.country.iso_code);
        resolve(ipData.country.iso_code);
      });
  });
}

getIsoCountry("66.6.44.4").then((rData) => {
  console.log(rData)
});

下面的是示例代码:

代码语言:javascript
复制
var getIsoCountry = function(pIpAddress) {

  return maxmind().then(function() {
       return "Code for IP: " + pIpAddress;
    });

  function maxmind() {
    return new Promise((resolve, reject) => {
      resolve("done")
    });
  }

}

getIsoCountry("1.1.1.1").then((data) => {
  console.log(data)
});

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57521672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档