Внедряването на приложения Node.js не би трябвало да е караница. Направете своя сървър Express.js готов и работещ с рентабилната и удобна за потребителя платформа на Render.
В края на 2022 г. Heroku прекрати своята опция за безплатно ниво, което доведе до премахването на наличния преди това безплатен абонаментен план за уеб хостинг и други облачни услуги в неговата екосистема.
Безплатните нива са особено удобни и рентабилни, ако възнамерявате да внедрите и хоствате приложения за кратък период от време. За щастие има алтернативна облачна платформа, която, подобно на Heroku, предлага безплатно ниво за своите облачни услуги наред с други предимства.
В тази статия ще проучим как да разположим Express.js REST API на Render, облачна хостинг платформа.
Какво е рендиране?
Render е облачна хостинг платформа, която предоставя безпроблемен и безпроблемен начин за внедряване и управление на статични уебсайтове, пълноценни уеб приложения, backend API или бази данни в облака. Характеристиките включват:
- Удобен за потребителя интерфейс: Render предоставя прост и интуитивен интерфейс, който опростява процеса на внедряване на приложения, изградени с помощта на популярни езици за програмиране като Python и Node.js.
- Вградени бази данни: Render предлага вградена поддръжка за популярни бази данни като PostgreSQL, MySQL и MongoDB, което го прави лесен за настройка и интегриране на бази данни в приложения, без да се налага да настройвате отделна база данни сървъри.
- Безпроблемен работен процес на внедряване: Render предоставя функции като автоматизирано внедряване, връщане назад и интеграции с популярни услуги като GitHub и GitLab.
- Персонализирани домейни и SSL: Render предлага възможност за конфигуриране на персонализирани имена на домейни за уебсайтове и уеб приложения и включва безплатни SSL сертификати за защитен HTTPS достъп.
Сравнение между Render и Heroku
Подобно на другите облачни платформи, Render има своите предимства и недостатъци. Но как се сравнява с популярни облачни решения като Heroku?
- Простота: Render предоставя удобен за потребителя интерфейс за внедряване и управление на приложения, с акцент върху лекотата на използване и минималната конфигурация.
- Автоматизирано мащабиране: Render автоматично мащабира приложенията въз основа на търсенето, без да изисква ръчни настройки или сложна конфигурация.
- Ефективност на разходите: Render предлага рентабилно ценообразуване, което включва безплатно ниво за индивидуални проекти и сравнително ниски цени за екипи и организационни планове, което го прави бюджетен вариант за хостване както на малки уеб приложения, така и на големи търговски проекти.
- Ограничена гъвкавост: Неговата простота и минимална конфигурация могат да бъдат ограничение за напреднали и сложни проекти, които изискват повече персонализиране и контрол върху хостинг средата.
Настройте нов проект на Render
За да започнете, преминете към Уеб сайт на Render и се регистрирайте и влезте в акаунта си.
Render улеснява внедряването и управлението на backend API, като предлага вградена поддръжка за популярни езици за програмиране и уеб услуги, които рационализират процеса на внедряване.
Това ръководство ще използва функцията за уеб услуги за внедряване на Express.js REST API. За да продължите, ще трябва първо да настроите екземпляр на PostgreSQL база данни в Render.
На страницата с общ преглед щракнете върху Нов PostgreSQL бутон за настройка на нов екземпляр.
След това попълнете името на вашата база данни и щракнете върху Създайте база данни. Накрая копирайте URL адрес на вътрешна база данни предоставени. Ще го използвате, за да конфигурирате връзката между вашия Express REST API и PostgreSQL базата данни.
По същество URL адресът на вътрешната база данни се използва за установяване на връзка между приложения, работещи на сървърите на Render, като например разгърнат API или пълноценно уеб приложение.
Независимо от това, ако искате да използвате само базата данни PostgreSQL от приложение, разположено на друга платформа, можете да използвате URL адрес на външна база данни за да конфигурирате връзката с базата данни.
Създайте Express.js REST API
Давай напред и създайте уеб сървър Express.js. След това инсталирайте следните пакети:
npm инсталирайте pg knex
Можете да намерите кода на този проект тук GitHub хранилище.
Конфигурирайте връзката към базата данни
За да настроите връзката между Express.js API и PostgreSQL екземпляра на Render, в главната директория на папката на вашия проект създайте db.js файл и добавете кода по-долу.
конст knex = изискват("кнекс");
конст db = knex({
клиент: 'pg',
Връзка: {
ConnectionString: „URL на базата данни“,
ssl: {
отхвърлянеНеоторизиран: невярно
}
}
});модул.exports = db;
След това отворете index.js файл и добавете кода под него имплементира прост REST API с четири маршрута.
конст експрес = изискват("експресен");
конст приложение = експрес()
конст db = изискват('./db')
конст PORT = process.env. ПРИСТАНИЩЕ || 5000app.use (express.json())
app.use (express.urlencoded({ удължен: вярно }))app.get('/', (req, res) => res.send('Здравей свят!' ))
// Вземете всички потребители
app.get('/потребители', асинхронен (req, res) => {
опитвам {
конст потребители = изчакайте db.select().from("потребители")
res.json (потребители)
} улов (грешка) {
конзола.error (грешка)
res.status(500).json({ съобщение: „Грешка при извличане на потребители“ })
}
})
app.post('/потребители', асинхронен (req, res) => {
опитвам {
конст потребител = изчакайте db("потребители").вмъкнете ({ име: req.body.name }).returning('*')
res.json (потребител)
} улов (грешка) {
конзола.error (грешка)
res.status(500).json({ съобщение: „Грешка при създаване на потребител“ })
}
})// Изтриване на съществуващ потребител
app.delete('/потребители/:id', асинхронен (req, res) => {
опитвам {
конст { id } = req.params
конст потребител = изчакайте db("потребители").къде({ id }).delete().returning('*')
res.json (потребител)
} улов (грешка) {
конзола.error (грешка)
res.status(500).json({ съобщение: „Грешка при изтриване на потребител“ })
}
})
app.listen (ПОРТ, () => конзола.log(`Сървър на PORT:${ПОРТ}`))
Настройте файла migrate.js
Създайте нова папка, скриптове, в основната директория на вашия проект добавете нов файл, migrate.js, и накрая добавете кода по-долу:
конст db = изискват('../db');
(асинхронен () => {
опитвам {
изчакайте db.schema.dropTableIfExists("потребители")
изчакайте db.schema.withSchema("публичен").createTable("потребители", (таблица) => {
table.increments()
table.string(име)
})
конзола.log('Създадена потребителска таблица!')
process.exit(0)
} улов (грешка) {
конзола.log (грешка)
process.exit(1)
}
})()
Този код ще създаде нов потребители таблица в базата данни с две колони: поле за първичен ключ с автоматично нарастване и поле за име.
Накрая добавете тези команди към вашите package.json файл.
"скриптове": {
"старт": "node index.js",
"мигрирам": "скриптове на възел/migrate.js",
},
И накрая, за да създадете потребителска таблица в базата данни, трябва да стартирате migrate.js файл като скрипт на вашия терминал, като използвате командата по-долу.
npm изпълнение мигриране
Въпреки това, преди да изпълните командата, не забравяйте да извлечете URL адрес на външна база данни от информацията за настройките на екземпляра на PostgreSQL на Render и го поставете в db.js файл като низ за свързване.
Това ще установи връзка с екземпляра на базата данни от вашата локална машина, което ви позволява да създадете таблицата, преди да разположите API. След като таблицата бъде създадена, можете да преминете към екземпляра на PostgreSQL на Render, да извлечете URL адрес на вътрешна база даннии актуализирайте db.js файл съответно.
Разположете REST API на Render
първо, създайте ново хранилище в GitHub и натиснете кода на проекта. След това влезте в акаунта си за Render, щракнете върху Ново+ и изберете Уеб сервиз опция от падащото меню.
Накрая влезте в акаунта си в GitHub, изберете хранилището на вашия проект и се свържете с него в Render.
На страницата с настройки на уеб услугата въведете име за новата услуга, посочете основната директория на проекта, командата за изграждане и стартиране и накрая щракнете върху Създайте уеб услуга. След като процесът на внедряване приключи, копирайте предоставения URL адрес, за да тествате крайните точки на Postman.
Тествайте крайните точки на API на Postman
Postman е популярен инструмент за разработване и тестване на API. За да се запознаете с Postman, научете как да го използвате, за да тествате API.
За да тествате внедрения API, направете a ПУБЛИКУВАНЕ молба до /потребители крайна точка за съхраняване на данни в базата данни PostgreSQL.
Накрая направете GET заявка за извличане на съхранените данни.
Рендерирането жизнеспособна алтернатива ли е?
Render осигурява лесен процес на настройка и безпроблемна интеграция с популярни системи за контрол на версиите, което го прави добра алтернативна облачна хостинг платформа.
Нещо повече, конкурентният му модел на ценообразуване и вградената поддръжка за популярни инструменти за разработка го правят надеждна и удобна за потребителя опция както за странични проекти, така и за големи търговски приложения.