קודם כל טוב לחזור, תודה לאורי על ההזדמנות, חלק ממכם יזהו ישר את הסגנון כתיבה, מי שלא אז לא
הקדמה לחסרי ההכרות עם Node.JS - הטכנולוגיה מבוססת V8 (המנוע שכרום משתמש בו כדי להריץ Javascript), היעוד שלה הוא לפתח אפליקציות סקלאביליות במיוחד (התמודדות עם עומסים, תהליכים כבדים שגדלים עם הזמן).
מצד שני לא תמיד אנחנו מפתחים אפליקציות כבדות כל כך, ולטעמי לפחות ב-Node.js אני נהנה לפתח את כל סוגי האפליקציות.
את תהליך ההתקנה הראשוני אני מניח הנחה שכולכם עובדים עם לינוקס, סתם בגדר המלצה תצרו לכם מחיצה עם הפצה בסיסית של לינוקס, יש דברים שפשוט לא נועדו לעבוד על windows.
דרך אגב node.js גם רץ על ווינדוס מכיוון שאף פעם לא ניסיתי להריץ אותו, אז תצטרכו להכנס לאתר שלהם ולהוריד את הbinary installer ולקוות שזה עובד כמו אצלי.
לינק להורדה - http://nodejs.org/
בלינוקס זה קצת יותר פשוט, תפתחו terminal ותקלידו
sudo apt-get install nodejs
|
כדי לא לכתוב כל פעם sudo אתם יכולים להריץ
להקיש את הסיסמא שלכם, ואז כל פקודה בחלון הנוכחי תרוץ כ-super.
כרגע אתם פחות או יותר יכולים לעשות הכל, אבל זה נורא משעמם כל פעם לכתוב קוד ללכת ל-terminal ולהריץ אותו, בשביל זה אני רוצה להכיר לכם כלי שנקרא npm (Node Package Manager)
מאז ש-Node.JS יצא לאור, הקהילה פיתחה המון המון תוספים בשבילו, הכלי הזה נועד בעיקר לאגד אותם במקום אחד, הכלי הזה כבר מגיע bundle בתוך node.js.
בואו נפתח תיקיה במחשב נקרא לה node_js_example ונכנס אליה (דרך הטרמינל),
כשאנחנו בתוך התיקיה הזאת נקליד את הפקודה הבאה:
connect היא ספריה אופטימלית במיוחד כדי להריץ שרת Http אנחנו לא נרחיב עליה יותר מדי, מי שמעוניין:
https://npmjs.org/package/connect
אחרי שהתקנו אם נסתכל על מה שהתיקיה שלנו מכילה, אנחנו נראה תיקיה של node_modules ששם בעצם יושבות כל החבילות שהתקנו ברמת ה-folder root, מה שמגניב במיוחד זה, שכל חבילה יכולות להיות לה dependencies משלה, ובתוכה אתם תמצאו עוד תיקיות של node_modules.
למה זה טוב?
כי גם אתם יכולים לעשות את זה בפרוייקט שלכם, כל מה שאתם צריכים זה ליצור קובץ package.json ושם אתם פשוט יכולים להגדיר את כל התלות של הפרוייקט שלכם בחבילות, ממש עד רמת הגירסא של החבילה.
ככה כשאתם מוציאים release אתם לא צריכים לדאוג אם יצאה חבילה חדשה של כלי שאתם משתמשים בו, אתם יכולים מראש להגדיר שאתם עובדים עם גירסא x והפרוייקט יותקן איתה.
חזרה ל-connect בואו ניצור קובץ חדש ונקרא לו server.js (בתיקיה שיצרנו מקודם).
נדביק בקובץ את הקוד הבא (כבר הסברים):
var server = require("connect");server.createServer(server.static(__dirname)).listen(3000);
|
ל-nodejs יש מנגנון שיודע להתמודד עם טעינה של מודולים, מה זה אומר?
קודם כל אני חוזר קצת ל-npm בשביל להרחיב את ההסבר, יש 2 דרכים להתקין חבילה, אחת נקודתית לתיקיה שאנחנו נמצאים בה, השניה היא גלובאלית לשרת, כדי להתקין גלובאלית אנחנו נוסיף בסוף הפקודה -g כדי להתקין לוקאלית זה נעשה by default אבל אם אתם מתעקשים אז אפשר עם -l.
למה זה משנה?
כי יש חבילות שמותקנות כ-process חיצוני ממש כמו node ואנחנו יכולים להריץ אותו כפקודה ממש ב-terminal, קחו למשל חבילה שאני מאוד אוהב nodemon
https://github.com/remy/nodemon
החבילה הזאת בעצם משמשת בתור watcher על הקבצים ויודעת לעשות reset לשרת שלכם כל פעם שמתבצע שינוי בקבצים, כדי להריץ אותה צריך ממש לכתוב בשורת הפקודה nodemon --args --args --args ממש תוספת לenvironment variables שלנו.
אני חוזר לטעינה של המודולים, כשמשתמשים ב-require הוא כמובן מחפש את החבילה בחבילות הבסיס של node.js וגם בתיקיה עצמה (חבילות שהותקנו לוקאלית).
אז מה הקוד שלנו עושה?
קודם כל בואו נשמור אותו בתור קובץ server.js נחזור ל-terminal ונכתוב:
עכשיו נפתח דפדפן ונלך לכתובת:
http://localhost:3000
אתם תראו שכתוב לכם "Cannot GET /" בגלל שלא יצרנו קובץ index בתוך התיקיה, בואו נייצר קובץ html בסיסי:
<!DOCTYPE html> <html> <head> <title>test game</title> </head> <body> <header> <h1>Title</h1> </header> <section id="application"> </section> <footer> </footer> </body> </html>
|
תשמרו את הקובץ הזה באותה תיקיה בשם index.html (ותריצו את השרת מחדש אלא אם התקנתם nodemon ואז אתם גאונים קטנים, וזה כבר אוטומאטית מתבצע).
כל זה ממש על רגל אחת, אבל אני בחופשת מחלה של חודש, אז תצפו להמשכים, מילות מפתח שאני מציע לכם לחפש בהקשר של node.js הם:
Compound, Express, Meteor כולם תשתיות שנועדו לתת לכם כלים לפיתוח אפליקציות עם nodejs אני נורא אוהב את meteor כשתתקינו תבינו גם למה...
אם יש שאלות אתם מוזמנים זה לא שיש לי יכולת ללכת לאיזה שהוא מקום (חוליה שבורה)!!!...