我最近开始开发Node.js,我仍然认为是菜鸟。
const publicIp = require('public-ip');
publicIp.v4().then(ip => {
console.log(ip);
});
正如您在上面的代码中看到的那样,我实际上希望获得公共IP。
但是,我完全不知道如何获取IP变量,以便我可以使用它。如果你有类似的帖子,请不要犹豫,关闭并重定向我。
答案 0 :(得分:0)
Node是一个单线程框架。你有什么异步功能。所以简而言之,你不能将变量“带”出函数。但是,您可以调用下一个函数并将ip变量传递给它。例如:
const publicIp = require('public-ip');
publicIp.v4().then(ip => {
myIPFunction(ip);
});
function myIPFunction(ip){
//Do something with your IP here
}
您的IP值最初显示在称为“回调”的内容中。同样,因为node是单线程框架,所以它不想等待进程调用完成。因此,它支持线程的其余部分,它允许进行这些回调。但这也意味着你无法定义或引用一个尚不存在的变量。所以有点像
const publicIp = require('public-ip');
var myIP;
publicIp.v4().then(ip => {
myIP = ip;
});
Console.log(myIP);
无效,因为“ip”变量尚不存在,因此没有填充myIP字段。
您可以通过这些文章了解更多相关信息
https://nemethgergely.com/async-function-best-practices/
https://medium.com/@thejasonfile/how-node-and-javascript-handle-asynchronous-functions-7feb9fc8a610