2017-12-24 3 views
0

사용자 DB를 구축하고 사이트가 온라인 상태인지 여부를 확인하려는 경우 URL을 저장하지 않고 삭제하고 사이트가 오프라인임을 사용자에게 알립니다. 문제는 프로그램이 아무 것도하지 않고 그냥 뛰어 내리는 요청을 통해 진행될 때입니다. 액시 오즈를 사용하여 요청했지만 요청은 여전히 ​​남아 있습니다. 비동기식 계산으로 인한 것일 수 있습니다. 어떤 도움을 정말 주시면 감사하겠습니다 =)스키마/모델에 대한 축/요청 사용

var r = require('rethinkdb'); 
var axios = require('axios'); 

var schema = function(data, callback){ 
    new_schema = true; 
    var schema = {}; 
    if(new_schema){ 
    schema.user = user.id; 
    } 

    schema.name = data.title || ''; 
    schema.email = data.email || ''; 

    if(data.url){ 
    axios.get(data.url).then(function(err, response){ 
    if(err) schema.url = 'no site' 
    schema.url = 'data.url'; 
    callback(schema); 
    }).catch(function(error){ 
     console.log(error); 
     callback(schema); 
    }); 
    }else{ 
    callback(schema); 
    } 

}; 
    var datos = ''; 
    command.stdout.on('data', (data) => { 
    datos = datos + data; 
    }); 


    command.on('close', (code) => { 

     const objs = JSON.parse(datos); 
     for (var i in objs) { 
     let obj = schema(objs[i], function(sch){ 
      console.log(sch); 
     }); 
     } 
    }catch(e){ 
     console.log(e); 
    } 
    process.exit(); 
    }); 

}); 

답변

0

문제는 비동기로 인한 것입니다. 이를 해결하려면 큐를 사용해야하고 라이브러리를 더 잘 사용했습니다. 이렇게하면 문제가 해결되고 서버 측에 대한 모든 호출이 이루어집니다.