פריסת אפליקציות Node.js לא צריכה להיות טרחה. הפעל את שרת Express.js שלך עם הפלטפורמה החסכונית והידידותית של Render.

בסוף 2022, Heroku הפסיקה את אפשרות השכבה החינמית שלה, וכתוצאה מכך הסרה של תוכנית המנויים החינמית הזמינה בעבר עבור אירוח אתרים ושירותי ענן אחרים באקוסיסטם שלה.

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

במאמר זה, נחקור כיצד לפרוס Express.js REST API ב-Render, פלטפורמת אירוח מבוססת ענן.

מה זה רנדר?

Render היא פלטפורמת אירוח בענן המספקת דרך חלקה ונטולת טרחה לפרוס ולנהל אתרים סטטיים, יישומי אינטרנט מלאים, ממשקי API עורפיים או מסדי נתונים בענן. התכונות כוללות:

  • ממשק ידידותי למשתמש: Render מספק ממשק פשוט ואינטואיטיבי המפשט את תהליך פריסת האפליקציות שנבנו באמצעות שפות תכנות פופולריות כגון Python ו-Node.js.
  • מסדי נתונים מובנים: Render מציע תמיכה מובנית עבור מסדי נתונים פופולריים כגון PostgreSQL, MySQL ו- MongoDB, מה שהופך אותו קל להגדיר ולשלב מסדי נתונים באפליקציות מבלי להגדיר מסד נתונים נפרד שרתים.
  • instagram viewer
  • זרימת עבודה של פריסה חלקה: Render מספק תכונות כגון פריסות אוטומטיות, החזרות ואינטגרציות עם שירותים פופולריים כמו GitHub ו-GitLab.
  • דומיינים מותאמים אישית ו-SSL: Render מציעה את היכולת להגדיר שמות דומיין מותאמים אישית עבור אתרי אינטרנט ויישומי אינטרנט, והוא כולל תעודות SSL בחינם לגישה מאובטחת ל-HTTPS.

השוואה בין רנדר להרוקו

כמו פלטפורמות הענן האחרות, לרנדר יש את ההטבות והחסרונות שלה. אבל איך זה בהשוואה לפתרונות ענן פופולריים כמו Heroku?

  • פַּשְׁטוּת: Render מספק ממשק ידידותי למשתמש לפריסה וניהול יישומים, עם התמקדות בנוחות שימוש ותצורה מינימלית.
  • קנה מידה אוטומטי: Render משנה קנה מידה אוטומטי של יישומים על סמך דרישה, מבלי לדרוש התאמות ידניות או תצורה מורכבת.
  • עלות תועלת: Render מציע תמחור חסכוני הכולל שכבת חינם עבור פרויקטים בודדים ותמחור נמוך יחסית לצוותים ו תכניות ארגוניות, מה שהופך אותה לאפשרות ידידותית לתקציב לאירוח גם יישומי אינטרנט בקנה מידה קטן וגם מסחרי גדול פרויקטים.
  • גמישות מוגבלת: הפשטות והתצורה המינימלית שלו יכולים להוות מגבלה עבור פרויקטים מתקדמים ומורכבים הדורשים יותר התאמה אישית ושליטה על סביבת האירוח.

הגדר פרויקט חדש בעיבוד

כדי להתחיל, עבור אל האתר של רנדר והירשם והיכנס לחשבון שלך.

Render מקל על פריסה וניהול ממשקי API עורפיים על ידי הצעת תמיכה מובנית בשפות תכנות פופולריות ושירותי אינטרנט המייעלים את תהליך הפריסה.

מדריך זה יעשה שימוש בתכונת שירותי האינטרנט שלו כדי לפרוס ממשק API של Express.js REST. כדי לעקוב, תצטרך להגדיר תחילה מופע מסד נתונים PostgreSQL ב-Render.

בדף הסקירה הכללית, לחץ על PostgreSQL חדש לחצן כדי להגדיר מופע חדש.

לאחר מכן, מלא את שם מסד הנתונים שלך ולחץ על צור מסד נתונים. לבסוף, העתק את כתובת אתר פנימית של מסד נתונים מסופק. אתה תשתמש בו כדי להגדיר את החיבור בין ה-Express REST API שלך למסד הנתונים PostgreSQL.

בעיקרו של דבר, כתובת ה-URL של מסד הנתונים הפנימי משמשת ליצירת חיבור בין יישומים הפועלים בשרתים של Render, כגון API פרוס או יישום אינטרנט מלא.

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

צור Express.js REST API

קדימה ו ליצור שרת אינטרנט Express.js. לאחר מכן, התקן את החבילות הבאות:

npm להתקין pg knex

אתה יכול למצוא את הקוד של הפרויקט הזה בזה מאגר GitHub.

הגדר את חיבור מסד הנתונים

כדי להגדיר את החיבור בין Express.js API למופע PostgreSQL של ​​Render, בספריית הבסיס של תיקיית הפרויקט שלך, צור db.js קובץ והוסף את הקוד למטה.

const knex = לִדרוֹשׁ('קנקס');
const db = knex({
לָקוּחַ: 'עמוד',
חיבור: {
מחרוזת חיבור: 'כתובת האתר של מסד הנתונים',
ssl: {
דחה לא מורשה: שֶׁקֶר
}
}
});

מודול.exports = db;

לאחר מכן, פתח את index.js קובץ, והוסיפו את הקוד שמתחתיו מיישם REST API פשוט עם ארבעה מסלולים.

const express = לִדרוֹשׁ("אֶקְסְפּרֶס");
const app = express()
const db = לִדרוֹשׁ('./db')
const PORT = process.env. PORT || 5000

app.use (express.json())
app.use (express.urlencoded({ מורחב: נָכוֹן }))

app.get('/', (req, res) => res.send('שלום עולם!' ))

// קבל את כל המשתמשים
app.get('/משתמשים', אסינכרון (req, res) => {
לְנַסוֹת {
const משתמשים = לְהַמתִין db.select().from('משתמשים')
res.json (משתמשים)
} לתפוס (שגיאה) {
לְנַחֵם‎.error (שגיאה)
res.status(500).json({ הוֹדָעָה: 'שגיאה באחזור משתמשים' })
}
})


app.post('/משתמשים', אסינכרון (req, res) => {
לְנַסוֹת {
const משתמש = לְהַמתִין db('משתמשים').לְהַכנִיס({ שֵׁם: req.body.name }).returning('*')
res.json (משתמש)
} לתפוס (שגיאה) {
לְנַחֵם‎.error (שגיאה)
res.status(500).json({ הוֹדָעָה: 'שגיאה ביצירת משתמש' })
}
})

// מחק משתמש קיים
app.delete('/users/:id', אסינכרון (req, res) => {
לְנַסוֹת {
const { id } = req.params
const משתמש = לְהַמתִין db('משתמשים').where({ id }).delete().returning('*')
res.json (משתמש)
} לתפוס (שגיאה) {
לְנַחֵם‎.error (שגיאה)
res.status(500).json({ הוֹדָעָה: 'שגיאה במחיקת משתמש' })
}
})

app.listen (PORT, () => לְנַחֵם.עֵץ(`שרת למעלה בפורט:${PORT}`))

הגדר את קובץ migrate.js

צור תיקייה חדשה, תסריטים, בספריית הבסיס של הפרויקט שלך, הוסף קובץ חדש, migrate.js, ולבסוף, הוסף את הקוד למטה:

const db = לִדרוֹשׁ('../db');
(אסינכרון () => {
לְנַסוֹת {
לְהַמתִין db.schema.dropTableIfExists('משתמשים')
לְהַמתִין db.schema.withSchema('פּוּמְבֵּי').createTable('משתמשים', (טבלה) => {
table.increments()
table.string('שֵׁם')
})
לְנַחֵם.עֵץ('טבלת משתמשים נוצרה!')
process.exit(0)
} לתפוס (שגיאה) {
לְנַחֵם.log (שגיאה)
process.exit(1)
}
})()

קוד זה יצור קוד חדש משתמשים טבלה במסד הנתונים עם שתי עמודות: שדה מפתח ראשי בתוספת אוטומטית ושדה שם.

לבסוף, הוסף את הפקודות האלה שלך package.json קוֹבֶץ.

"תסריטים": {
"הַתחָלָה": "node index.js",
"להגר": "סקריפטים של צומת/migrate.js",
},

לבסוף, כדי ליצור את הטבלה של המשתמש במסד הנתונים, עליך להפעיל את migrate.js קובץ כסקריפט בטרמינל שלך באמצעות הפקודה למטה.

npm run migrate

עם זאת, לפני הפעלת הפקודה, הקפד לאחזר את כתובת אתר של מסד נתונים חיצוני ממידע ההגדרות של מופע PostgreSQL של ​​Render, והדבק אותו ב- db.js קובץ כמחרוזת החיבור.

זה ייצור חיבור עם מופע מסד הנתונים מהמחשב המקומי שלך, ויאפשר לך ליצור את הטבלה לפני פריסת ה-API. לאחר יצירת הטבלה, תוכל לעבור למופע PostgreSQL של ​​Render שלך, לאחזר את כתובת אתר פנימית של מסד נתונים, ועדכן את ה db.js להגיש בהתאם.

פרוס את REST API ב-Render

ראשון, צור מאגר חדש ב- GitHub ודחוף את קוד הפרויקט. לאחר מכן, היכנס לחשבון Render שלך, לחץ על חדש+ לחצן, ובחר את שירות רשת אפשרות מהתפריט הנפתח.

לבסוף, גש לחשבון GitHub שלך, בחר את המאגר של הפרויקט שלך והתחבר אליו ב-Render.

בדף הגדרות שירות האינטרנט, ציין שם לשירות החדש, ציין את ספריית הבסיס של הפרויקט, את פקודת ה-build and start, ולבסוף, לחץ על צור שירות אינטרנט. לאחר השלמת תהליך הפריסה, העתק את כתובת האתר שסופקה כדי לבדוק את נקודות הקצה ב-Postman.

בדוק את נקודות הקצה של ה-API ב-Postman

Postman הוא כלי פופולרי לפיתוח ובדיקת ממשקי API. כדי להכיר את פוסטמן, למד כיצד להשתמש בו כדי לבדוק API.

כדי לבדוק את ה-API שנפרס, צור א הודעה בקשה ל/משתמשים נקודת קצה לאחסון נתונים במסד הנתונים PostgreSQL.

לבסוף, שלח בקשת GET כדי לאחזר את הנתונים המאוחסנים.

האם עיבוד הוא אלטרנטיבה בת קיימא?

Render מספק תהליך הגדרה פשוט, ושילוב חלק עם מערכות בקרת גרסאות פופולריות מה שהופך אותה לפלטפורמת אירוח ענן חלופית טובה.

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