我是新来的。我正在尝试使用名为“ external-ip”的程序包来获取外部IP。他们的示例中包含以下代码
const getIP = require('external-ip')();
getIP((err, ip) => {
if (err) {
// every service in the list has failed
throw err;
}
ip = ip;
console.log(ip);
});
它工作正常,但是我想在功能之外使用IP,也许我知道如何使用它?
我尝试过但是没为我工作
const ipaddress = getIP((err, ip) => {
if (err) {
// every service in the list has failed
throw err;
}
return ip;
console.log(ip);
});
console.log(ipaddress);
答案 0 :(得分:1)
首先用let定义
ip
ip
是在程序的本地范围内定义的,这意味着只能在函数中访问它。现在,您应该避免使用全局范围,因为通常认为这是不好的做法,但这是从程序中任何位置访问ip
变量的一种方法。另一种方法是将其退回
const getIP = require('external-ip')();
const ipaddress = getIP((err, ip) => {
if (err) {
// every service in the list has failed
throw err;
}
console.log(ip);
return ip;
});
ip = ipaddress()
console.log(ip)
请注意,return语句之后的所有内容都是无效代码,因此无法运行,因此,要运行的任何代码都应放在任何return语句之前(请注意console.log()在函数中的位置
答案 1 :(得分:0)
这将起作用
let ipaddress;
getIP((err, ip) => {
if (err) {
// every service in the list has failed
throw err;
}
ipaddress = ip;
});
console.log(ipaddress);
Edgar Cuarezma的解决方案