התחלתי ללמוד nodejs, או יותר נכון התחלתי לפתח.. (אם אתיישב ללמוד ואח"כ אתחיל לפתח, אוי ואבוי, כל השיטה היא שמתחילים מיד עם תוכנית עבודה..)
כמה שאלות:
א. להבין את המבנה איך מפתחים ומעדכנים קבצי קוד.
לפי מה שהבנתי לאחר כתיבת הקוד הראשון בקובץ js עלי להפעיל אותו ע"י הפקודה
myapp.js nodejs
דבר ראשון אני רוצה להבין מה קורה כאן, אני רואה שהפקודה לא נעצרת, אני לא מקבל תשובה. ומצד שני לאחר שביצעתי שינויים בקובץ ואני רוצה לעדכן את השרת הרצתי שוב את הפקודה הנ"ל וזה נכשל כי הפורט כבר היה תפוס, מגלגול בגוגל הבנתי שעלי לחפש את התהליך ולהרוג אותו, וזה מה שעשיתי ואז ניתן היה לאחל מחדש.
היה נשמע לי מסורבל, גילגלתי עוד ומצאתי שיש משהו nodemon שעוקב אחרי הקובץ, וברגע שאני משנה אותו הוא מבצע את השינויים בשרת, בלי שאצטרך לבד לאתחל את התהליך.
אשמח להבין האם זו אכן הדרך?
ב. איך בעצם יוצרים כמה אפלקציות? בקוד זה למשל:
var http = require('http');
var url = require('url');
var fs = require('fs');
http.createServer(function (req, res) {
var q = url.parse(req.url, true);
var filename = "." + q.pathname;
fs.readFile(filename, function(err, data) {
if (err) {
res.writeHead(404, {'Content-Type': 'text/html'});
return res.end("404 Not Found");
}
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
return res.end();
});
}).listen(8080);
מקור https://www.w3schools.com/nodejs/nodejs_url.asp
ראיתי איך לנווט לקבצים לפי הנתיב שכתבתי. רק ששם זה רק הדפסה מתוך הקובץ, אני רוצה לדעת איך לנווט מראש לסקריפט/פונקציות באמצעות נתיב הקובץ
האם עלי לעשות קובץ ראשי שמאזין לפורט 80 וינתב את הסקריפט למודל לפי הנתיב? או משהו אחר? בקיצור איך זה למישהו שמגיע מPHP...
ג. איך אני יוצר תתי קבצים של פונקציות, שאוכל לגשת אליהם בלי להצטרך להכניס אותם למשתנה ולגשת מתוך המשתנה, יותר נכון אני רוצה אותם בצורה גלובאלית, דומה ל
include 'CreditCard.php';
בשפת PHP.
מצאתי את זה https://stackoverflow.com/questions/5797852/in-node-js-how-do-i-include-functions-from-my-other-files יש שם בתשובה הרביעית משהו שהיה נראה יחסית הכי קל, אבל עדיין זה לא גמיש.
ד. וכהמשך לג' אני רוצה לעשות קבועים בקובץ נפרד, איך עושים את זה?
ה. אני רוצה לגשת לפרמטרים של הURL מתוך פונקציה וכן להדפיס תשובה למסך מתוך אותה פונקציה, אני חייב להעביר את req, res לפונקציה? או שניתן לגשת אליהם כגלובאלי או משהו אחר?
ו. בסופו של דבר, כל השרת אמור להיות כתוב בסופו של דבר בקובץ אחד, (כמובן שניתן לייבא מודולים, אבל האם בתכלית זה הפליקציה אחת בלבד), או שכן ניתן לעשות משהו בדומה לPHP וHTML שהנתיב מפנה לקוד להרצה
חכו לשאלות בהמשך...
@dovid אתה אשם, אתה צריך לעזור לי...
תודה