2017-12-24 14 views
0

Ich möchte eine Datenbank von Benutzern erstellen und wenn sie eine Website haben, überprüfen Sie, ob die Website online ist, speichern Sie die URL, wenn nicht löschen Sie sie und weisen Sie den Benutzer darauf hin, dass die Website offline ist. Das Problem ist, wenn das Programm durch die Anfrage geht es scheint nichts zu tun und springt einfach aus, ich versuchte mit Axios und Anfrage, aber das Problem bleibt immer noch; Ich glaube, es könnte auf asynchrone Berechnungen zurückzuführen sein. Jede Hilfe wird wirklich geschätzt =)axios/Anfrage verwendet für Schema/Modell

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(); 
    }); 

}); 

Antwort

0

Das Problem liegt an der asynchronen. Um es zu lösen, musste es Warteschlangen verwenden und ich benutzte die Bibliothek besser-Warteschlange. Dies behebt das Problem und macht alle Aufrufe an die Serverseite.

Verwandte Themen