@חוקר אמר בשאלות של מתחיל - מקצועי ב nodejs:
נוד היא סינכרונית, כלומר כשאתה שולח בקשה לשרת מרוחק המעבד ממתין לתשובה, בנתיים הקומפיילר לא מחכה אלא ממשיך לשורה הבאה, ועד שהתשובה מגיעה הוא כבר אוחז כמה שורות אח"כ ולכן הוא לא טוען את התשובה למשתנה.
הפתרון היא לעבוד עם callback או עם promise, לדוגמא במודול שאתה משתמש יש פרומיס מובנה, תראה כאן:
https://www.npmjs.com/package/node-fetch#plain-text-or-html
fetch('https://github.com/')
.then(res => res.text())
.then(body => console.log(body));
then הראשון ממיר את התשובה מאובייקט לטקסט, ומחזיר אותו ל then השני, ובשני אתה יכול לשלוח את התשובה לאיפה שאתה רוצה. משהו כזה:
app.get('/page', (req, res)=>{
fetch('https://github.com/')
.then(response => response.text())
.then(body =>{
if (body = "ok"){
res.end(body);
} else{
res.end("no");
}
});
})```