这是提供域名的详细信息的代码
var whois = require('node-whois')
function Info() {
}
Info.prototype.dom =function () {
whois.lookup('google.com', function (err, data) {
})
}
var k = new Info();
console.log(k.dom());
答案 0 :(得分:1)
这不是你的问题。
相反,问题是你没有处理JavaScript的非阻塞性质。当你调用k.dom()并返回时,对lookup的调用已经开始,但还没有完成。呼叫不等待(“阻止”)答案。相反,当答案最终到来时,您作为查询的第二个参数传递的函数将使用结果调用。不幸的是,在那个函数中,你什么都不做,所以返回的结果就丢失了。
尝试在打印出数据的函数内部放置一些内容,看看会发生什么。然后考虑如何构建代码来处理这个问题。
答案 1 :(得分:0)
您的script.js(模块)
var whois = require('node-whois');
function Info() {
}
Info.prototype.dom = function (callback) {
whois.lookup('google.com', function (err, data) {
callback(err,data);
});
}
module.exports = Info;
使用你的脚本;不要在定义模块的同一文件中使用它们显示不良做法。
var script = require('./script');
var k = new script();
k.dom(function(e,d){
console.log(d);
});