לינוקס אבונוטו קבלת נתונים משרת מרוחק באמצעות VPN של Fortinet/הרצת תהליך קבוע
-
@dovid תודה, בדיוק הייתי צריך את זה גם
אבל יש לי בעיה, יש לי שורה בקוד שקוראת את התוכן של קובץ מסויים מהתיקייה בשרת
const fileContent = fs.readFileSync(filePath, 'utf-8');
ובשורה הזו הקוד נופל (בדקתי וזה עובד מצוין ללא זה), ובאופן הרגיל זה כן עובד עם זה, מה יכול להיות הבעיה?
ברגיל אני מריץ את זה כמשתמש ubuntu, וככה הגדרתי (גם לי זה עשה כמה שגיאות עד שהצלחתי ללמוד איך להפעיל את זה ב"ה )
[Unit] Description=node app Service [Service] ExecStart=/home/ubuntu/.nvm/versions/node/v14.17.0/bin/node /var/www/node/index.js Restart=always RestartSec=10 SyslogIdentifier=short-name-for-logs User=ubuntu [Install] WantedBy=multi-user.target
-
@מוטי-מן כתב בלינוקס אבונוטו קבלת נתונים משרת מרוחק באמצעות VPN של Fortinet/הרצת תהליך קבוע:
@dovid תודה, בדיוק הייתי צריך את זה גם
אבל יש לי בעיה, יש לי שורה בקוד שקוראת את התוכן של קובץ מסויים מהתיקייה בשרת
const fileContent = fs.readFileSync(filePath, 'utf-8');
ובשורה הזו הקוד נופל (בדקתי וזה עובד מצוין ללא זה), ובאופן הרגיל זה כן עובד עם זה, מה יכול להיות הבעיה?
ברגיל אני מריץ את זה כמשתמש ubuntu, וככה הגדרתי (גם לי זה עשה כמה שגיאות עד שהצלחתי ללמוד איך להפעיל את זה ב"ה )
[Unit] Description=node app Service [Service] ExecStart=/home/ubuntu/.nvm/versions/node/v14.17.0/bin/node /var/www/node/index.js Restart=always RestartSec=10 SyslogIdentifier=short-name-for-logs User=ubuntu [Install] WantedBy=multi-user.target
ה filePath שכתבת, הוא נתיב ביחס לתיקייה או ביחס לכל השרת?
(האם הוא
${filePath}/var/www/node/
או
/${filePath}
)
-
@צבי-ש לא, זה ללא "/" בכלל, זה קובץ שממוקם באותה תיקייה של הindex.js
זה שהשורה שבה זה נופל
if (await licenseVerification(call.values.idUser, call.ApiDID) === true) {
וזה הפונקציה licenseVerification
function licenseVerification(idUser, numberDid) { const filePath = 'authorized_numbers.ini'; const fileContent = fs.readFileSync(filePath, 'utf-8'); const numbersArray = fileContent.split('\n'); if (numbersArray.includes(numberDid)) { return true; } else { return false; } }
-
@מוטי-מן כתב בלינוקס אבונוטו קבלת נתונים משרת מרוחק באמצעות VPN של Fortinet/הרצת תהליך קבוע:
@צבי-ש לא, זה ללא "/" בכלל, זה קובץ שממוקם באותה תיקייה של הindex.js
תנסה לציין לו את הנתיב המלא.
const filePath = '/var/www/node/authorized_numbers.ini';
-
@צבי-ש אבל אז אני יהיה מוגבל למבנה התיקיות הנוכחי..
יש דרך לקבל את התיקייה שבה נמצא קובץ הjs?עריכה: שאלתי את ג'י פי טי, וזה מה שהוא הביא לי, אנסה בהמשך בעז"ה
const path = require('path'); // נקבל את נתיב התיקייה שבה נמצא הקובץ הנוכחי const currentDirectory = __dirname; // נקבל את נתיב התיקייה המלא של קובץ ה-JavaScript const scriptPath = path.join(currentDirectory, 'index.js'); console.log('Current Directory:', currentDirectory); console.log('Script Path:', scriptPath);
-
@מוטי-מן כתב בלינוקס אבונוטו קבלת נתונים משרת מרוחק באמצעות VPN של Fortinet/הרצת תהליך קבוע:
@צבי-ש אבל אז אני יהיה מוגבל למבנה התיקיות הנוכחי..
יש דרך לקבל את התיקייה שבה נמצא קובץ הjs?עריכה: שאלתי את ג'י פי טי, וזה מה שהוא הביא לי, אנסה בהמשך בעז"ה
אני לא זכרתי בע״פ אז חיפשתי בגוגל
״get path in nodejs״
וזה התוצאה הראשונה
https://stackoverflow.com/questions/3133243 -
@מוטי-מן בדיוק בשביל הבעיה הזאת יש את הworkingDirectory. תבדוק אם זה עוזר.
@חוקר הקיצור ~ הוא לא אמיתי, אלא קיצור של הבש (השפה של הטרמינל באובנטו) כמדומני, אם אני זוכר מה ש@yossiz למדני.
כמו"כ הWorkingDirectory צריך להפנות לנתיב מהוחלט שאתה רוצה שייחשב אצל היישום הרץ "תיקיה נוכחית" (לעניין כתובות יחסיות מתוך היישום). -
@מוטי-מן כתב בלינוקס אבונוטו קבלת נתונים משרת מרוחק באמצעות VPN של Fortinet/הרצת תהליך קבוע:
מי אמר שלינוקס זה מסובך?
https://web.mit.edu/~simsong/www/ugh.pdf
מִזְכֶה (קרדיט) ל @yossiz על שהכיר לי את הספר הזה.