0

I got the following code :

router.get('/about', async (req, res) => {
    console.log("JE SUIS DANS ABOUT");

    let learn, 
        mission, inMission, 
        vision, inVision, 
        values, inValues,
        ethics, ethics1,
        ethics2, ethics3,
        ethics4,ethics5,
        ethics6, ethics7,
        ethics8, data1;



    if(req.cookies.lang === 'EN' || req.cookies.lang === undefined){
        fs.readFile('./xml/lang/en.xml', function(err, data){
        
            parser.parseStringPromise(data)
                .then(async function(res){
                    let path = res.langText.aboutUs[0];
                    
                    learn = path.learn; 
                    mission = path.mission; 
                    inMission = path.inMission;

                    vision = path.vision;
                    inVision = path.inVision;
                    values = path.values;
                    inValues = path.inValues;
                    ethics = path.ethics;
                    ethics1 = path.ethics1;
                    ethics2 = path.ethics2;
                    ethics3 = path.ethics3;
                    ethics4 = path.ethics4;
                    ethics5 = path.ethics5;
                    ethics6 = path.ethics6;
                    ethics7 = path.ethics7;
                    ethics8 = path.ethics8;

                    //console.log(path)
                    console.log(learn)   //--> it works 
                    console.log(mission) //--> it works
                })
                .catch(function(err){
                    console.error(err)
                })
        })
    }else if(req.cookies.lang === 'FR'){
        fs.readFile('./xml/lang/fr.xml', function(err, data){
        
            parser.parseStringPromise(data)
                .then(function(res){
                    let path = res.langText.aboutUs[0];
                    
                    learn = path.learn; 
                    mission = path.mission; 
                    inMission = path.inMission;

                    vision = path.vision;
                    inVision = path.inVision;
                    values = path.values;
                    inValues = path.inValues;
                    ethics = path.ethics;
                    ethics1 = path.ethics1;
                    ethics2 = path.ethics2;
                    ethics3 = path.ethics3;
                    ethics4 = path.ethics4;
                    ethics5 = path.ethics5;
                    ethics6 = path.ethics6;
                    ethics7 = path.ethics7;
                    ethics8 = path.ethics8;

                    console.log(learn)   //--> it works 
                    console.log(mission) //--> it works
                })
                .catch(function(err){
                    console.error(err)
                })
        })
    }else if(req.cookies.lang === 'ES'){
        fs.readFile('./xml/lang/es.xml', function(err, data){
        
            parser.parseStringPromise(data)
                .then(function(res){
                    let path = res.langText.aboutUs[0];
                    
                    learn = path.learn; 
                    mission = path.mission; 
                    inMission = path.inMission;

                    vision = path.vision;
                    inVision = path.inVision;
                    values = path.values;
                    inValues = path.inValues;
                    ethics = path.ethics;
                    ethics1 = path.ethics1;
                    ethics2 = path.ethics2;
                    ethics3 = path.ethics3;
                    ethics4 = path.ethics4;
                    ethics5 = path.ethics5;
                    ethics6 = path.ethics6;
                    ethics7 = path.ethics7;
                    ethics8 = path.ethics8;

                    console.log(learn)   //--> it works 
                    console.log(mission) //--> it works
                })
                .catch(function(err){
                    console.error(err)
                })
        })
    }

    console.log(learn)   //--> undefined
    console.log(mission) //--> undefined

    await res.render('about', {title:"about Us",
    text1 : learn,
    text2 : mission,
    text3 : inMission,
    text4 : vision,
    text5 : inVision,
    text6 : values,
    text7 : inValues,
    text8 : ethics,
    text9 : ethics1,
    text10 : ethics2,
    text11 : ethics3,
    text12 : ethics4,
    text13 : ethics5,
    text14 : ethics6,
    text15 : ethics7,
    text16 : ethics8})
})

I declare some variables at the begining of the method... My question is : How can I get access to the data inside the function : "parse.parseStringPromise(data)" If i do a console..log inside that method, it will show me but outside, it says that my variables that I define at the beggining of the methode are undefined, but I'm doing this :

let path = res.langText.aboutUs[0];
learn = path.learn;
mission = path.mission; 
inMission = path.inMission;

... Someone know how can I solve this?

0 Answers0