Javascript 回调时的节点调用导出
我因为没有从基础知识中学习而只是跳进去而大发雷霆 我正在构建一个API,它返回域的SSL证书状态。 它在console.log上运行良好,但JSON输出为空,这显然是因为导出在https请求结束之前执行 如何在response.on(end)函数中合并导出? 非常感谢Javascript 回调时的节点调用导出,javascript,node.js,Javascript,Node.js,我因为没有从基础知识中学习而只是跳进去而大发雷霆 我正在构建一个API,它返回域的SSL证书状态。 它在console.log上运行良好,但JSON输出为空,这显然是因为导出在https请求结束之前执行 如何在response.on(end)函数中合并导出? 非常感谢 函数getSSL(域){ 变量选项={ 主机:“www.+domain+'.com”, 方法:“get”, 路径:'/' }; var-isAuth=false; 回调=函数(响应){ on('data',function(){
函数getSSL(域){
变量选项={
主机:“www.+domain+'.com”,
方法:“get”,
路径:'/'
};
var-isAuth=false;
回调=函数(响应){
on('data',function(){
isAuth=response.socket.authorized;
});
response.on('end',function(){
console.log(isAuth);
});
}
var req=https.request(选项,回调).end();
}
exports.findByDomain=函数(请求,响应){
var id=请求参数id;
sslCheck=getSSL(id);
response.send(sslCheck);
};代码>是,响应.send(sslCheck)代码>在getSSL(id)之前执行代码>有机会完成。您需要发送回调,以便在getSSL(id)之后执行它代码>完成:
function getSSL(domain, callback) {
var options = {
host: 'www.'+domain+'.com',
method: 'get',
path: '/'
};
var isAuth = false;
var httpCallback = function(response) {
response.on('data', function () {
isAuth = response.socket.authorized;
});
response.on('end', function () {
console.log(isAuth);
callback(isAuth);
});
}
var req = https.request(options, httpCallback).end();
}
exports.findByDomain = function (req, response) {
var id = req.params.id;
getSSL(id, function(sslCheck) {
response.send(sslCheck);
});
};
getSSL
需要回调作为返回数据的第二个参数。它看起来像:getSSL(id,函数(数据){response.send(数据)})
,其中,isAuth
是您希望传递给最终回调函数的内容,可能是在您的findByDomain
函数中定义的。非常感谢,工作正常!现在我只需要研究一种更好的方法来检索SSL信息,而不需要整个第一页html的开销。