קורס Node.JS שיעור שתי תוכניות ראשונות ב node.js


זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/nodejs/lessons/03-hello-nodejs-world

הי ינון,
התוכנית הראשונה ראיתי שנמצאת בטאב הטקסט.
לגבי התוכנית השנייה, היכן נמצא לינק לתיעוד התוכנית מ-הוידאו?

תודה מראש

בוידאו מלים שמורות כמו console.log מוצגות בצבעים.
כיצד ניתן להגדיר זאת כך שיוצג אצלנו?
(הערה: מילות מפתח כמו const או function כן מוצגות בצבעים אבל לא מעבר לזה)

הי ניר,

תוכל למצוא את כל דוגמאות הקורס במאגר גיטהאב הזה:

אפשר (ורצוי) להוריד את המאגר אליך כקובץ זיפ ולהריץ כל אחד מהפרויקטים אצלך במהלך או אחרי הצפיה בסרטון

לגבי הצבעים אצלי Visual Studio Code פשוט עשה את זה אוטומטית (לא הגדרתי שום דבר מיוחד בשביל זה). אולי יש לך גירסא ישנה יותר שלו? רוצה לנסות לשדרג ולראות אם זה משפיע?

נכון, היתה לי התקנה קודמת של visual st. (סלוגן בירוק) ורק התקנה מחדש שדרגה לי (לסלוגן כחול) עם סימון מלא של צבעים.
תודה

לייק 1

היי ינון בתחילת הפרק לא אמרת איזה סוג פרוייקט לפתוח בויז’ואל אם זה form או net

הי דין,
אני משתמש ב Visual Studio Code ולא ב Visual Studio הרגיל. ב VS Code אין בחירה של סוג פרויקט כי זה בסך הכל עורך טקסט.

זה הקישור להורדה:

ינון שלום,
אני מנסה להרית אצלי את התוכנית הזו ומקבלת את השגיאה
Error: connect ECONNREFUSED 127.0.0.1:443
מה הסיבה?
תודה

הי גילה,
ברוכה הבאה לפורום - בפרק יש שתי תוכניות: איזה מהן את מנסה להריץ? יכולה להדביק כאן בדיוק את הקוד שאת מפעילה רק כדי שנוודא שזה אותו דבר?
(את יכולה למצוא אגב את הקוד שלי בטאב ״טקסט״ ליד הסרטון)

התוכנית השניה,

const { URL } = require('url');
const https = require('https');

const url = new URL('https://swapi.co/api/people/1/');

const req = https.request(url, (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
});

req.on('error', (e) => {
  console.error(e);
});
req.end();

הי,
עשיתי עכשיו קופי-פייסט מההודעה לתוכנית אצלי והכל עבד - אז זו כנראה בעיה אצלך בסביבה.

התוכנית מנסה לגשת לכתובת https://swapi.co/api/people/1 - תוכלי לבדוק אם את מצליחה מהדפדפן לגשת לכתובת זו? יכול להיות שיש אצלך חסימה ברמת האינטרנט וזה מפיל גם את התוכנית

עוד אפשרות זה שאולי אנחנו לא משתמשים באותה גירסת node - איזו גירסת node מותקנת אצלך? (את יכולה לבדוק עם node --version מתוך cmd)

ניסיתי, אני מצליחה לקבל נתונים בדפדפן מהכתובת הנ"ל,
חפשץי קצת בגוגל, והיה נראה שזה אולי קשור להגדרות של prxoy?
הגירסה שלי v10.16.0
אבל אני לא רוצה לעדכן כי זה יכול להשפיע על פרויקטים אחרים במשרד, נכון?

את עובדת עם פרוקסי? אז בהחלט ייתכן ששם הבעיה.

הנה גירסא של התוכנית שעובדת ב http - תוכלי לנסות אותה?

const { URL } = require('url');
const http = require('http');

const url = new URL('http://swapi.co/api/people/1/');

const req = http.request(url, (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
});

req.on('error', (e) => {
  console.error(e);
});
req.end();

כן אני עובדת עם פרוקסי,
עדיין מתקבלת השגיאה
Error found: { Error: connect ETIMEDOUT 104.31.77.248:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
errno: ‘ETIMEDOUT’,
code: ‘ETIMEDOUT’,
syscall: ‘connect’,
address: ‘104.31.77.248’,
port: 80 }

לפחות החלפנו שגיאה :slight_smile:

יש כאן הוראות איך לקנפג את node מאחורי פרוקסי:

רוצה לנסות להפעיל את שתי הפקודות משם ולראות אם זה מסתדר?

האמת שכבר הגדרתי את ההגדרות האלה, בגלל שאני עובדת גם עם אנגולר 8
בכל אופן הרצתי שוב, ההגדרות הוגדרו, אבל עדיין מתקבלת אותה שגיאה.

ויש לך אפשרות להפעיל את התוכנית מאינטרנט אחר או ממחשב שלא עובר דרך הפרוקסי? רק בשביל שנוודא אם הבעיה בפרוקסי או במקום אחר?

אין לי אפשרות - מכיוון שאין לי אינטרנט בבית ובעבודה אין אפשרות לעקוף את הפרוקסי.
האם זה חשוב לסדר את זה או שאפשר להסתדר בהמשך הקורס ללא הגישה הזו?
כן הצלחתי לקבל נתונים משירות שהרצתי מקומית אצלי במחשב.

הי גילה,
לא יקרה כלום אם תתקדמי בלי הדוגמא הזו. כן שווה לבדוק אולי יש אצלך ברשת הפנימית במשרד איזה api שאפשר לנסות להתחבר ולקחת ממנו מידע (משהו פנימי של העבודה שלא יהיה חסום)

ערב טוב
אני כתבתי את שתי התוכניות שנתת
אבל החזיר לי שגיאה כשניגשתי לשרת (ניגשתי לשרת מקומי שלי)
בעיה כזו unable to verify the first certificate
ניסיתי לחפש בגוגל ומצאתי שאני צריכה לכתוב
http.globalAgent.options.ca = require(‘ssl-root-cas’).create();
ועשיתי כמוובן npm install ל ssl-root-cas
הוא מצליח להחזיר לי תשובה מהשרת
אבל בלי קשר נותן לי את השגיאה הזו
Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to ‘0’ makes TLS connections and HTTPS requests insecure by disabling certificate verification.
לא מצליחה לפתור אותה
אשמח לתשובה
תודה רבה