Развертывание приложений Node.js не должно вызывать затруднений. Запустите свой сервер Express.js с помощью экономичной и удобной платформы Render.

В конце 2022 года Heroku прекратила предоставление бесплатного уровня, что привело к удалению ранее доступного бесплатного плана подписки на веб-хостинг и другие облачные сервисы в его экосистеме.

Бесплатные уровни особенно удобны и экономичны, если вы собираетесь развертывать и размещать приложения в течение короткого периода времени. К счастью, есть альтернативная облачная платформа, которая, как и Heroku, предлагает бесплатный уровень для своих облачных сервисов среди других преимуществ.

В этой статье мы рассмотрим, как развернуть REST API Express.js на Render, облачной платформе хостинга.

Что такое рендер?

Render — это платформа облачного хостинга, которая обеспечивает простой и удобный способ развертывания и управления статическими веб-сайтами, полноценными веб-приложениями, внутренними API-интерфейсами или базами данных в облаке. Особенности включают в себя:

instagram viewer
  • Удобный интерфейс: Render предоставляет простой и интуитивно понятный интерфейс, упрощающий процесс развертывания приложений, созданных с использованием популярных языков программирования, таких как Python и Node.js.
  • Встроенные базы данных: Render предлагает встроенную поддержку популярных баз данных, таких как PostgreSQL, MySQL и MongoDB, что делает его легко настроить и интегрировать базы данных в приложения без необходимости создавать отдельную базу данных серверы.
  • Беспрепятственный рабочий процесс развертывания: Render предоставляет такие функции, как автоматическое развертывание, откат и интеграция с популярными сервисами, такими как GitHub и GitLab.
  • Пользовательские домены и SSL: Render предлагает возможность настраивать собственные доменные имена для веб-сайтов и веб-приложений, а также включает бесплатные сертификаты SSL для безопасного доступа по протоколу HTTPS.

Сравнение между Render и Heroku

Как и у других облачных платформ, у Render есть свои преимущества и недостатки. Но как это соотносится с популярными облачными решениями, такими как Heroku?

  • Простота: Render предоставляет удобный интерфейс для развертывания приложений и управления ими с упором на простоту использования и минимальную настройку.
  • Автоматическое масштабирование: Render автоматически масштабирует приложения в зависимости от потребности, не требуя ручной настройки или сложной настройки.
  • Экономическая эффективность: Render предлагает экономичные цены, которые включают бесплатный уровень для отдельных проектов и относительно низкие цены для команд и организационные планы, что делает его экономичным вариантом для размещения как небольших веб-приложений, так и крупных коммерческих проекты.
  • Ограниченная гибкость: Его простота и минимальная конфигурация могут быть ограничениями для продвинутых и сложных проектов, требующих большей настройки и контроля над средой хостинга.

Настройте новый проект на рендере

Для начала перейдите на Сайт рендера и зарегистрируйтесь и войдите в свою учетную запись.

Render упрощает развертывание и управление серверными API, предлагая встроенную поддержку популярных языков программирования и веб-сервисов, которые упрощают процесс развертывания.

В этом руководстве будет использоваться функция веб-сервисов для развертывания REST API Express.js. Чтобы продолжить, вам нужно сначала настроить экземпляр базы данных PostgreSQL на Render.

На странице обзора нажмите кнопку Новый PostgreSQL кнопку для создания нового экземпляра.

Затем введите имя вашей базы данных и нажмите Создать базу данных. Наконец, скопируйте URL-адрес внутренней базы данных предоставил. Вы будете использовать его для настройки соединения между вашим Express REST API и базой данных PostgreSQL.

По сути, URL-адрес внутренней базы данных используется для установления соединения между приложениями, работающими на серверах Render, такими как развернутый API или полноценное веб-приложение.

Тем не менее, если вы хотите использовать базу данных PostgreSQL только из приложения, развернутого на другой платформе, вы можете использовать URL-адрес внешней базы данных для настройки подключения к базе данных.

Создайте REST API Express.js

Иди вперед и создать веб-сервер Express.js. Далее устанавливаем следующие пакеты:

npm установить pg knex

Вы можете найти код этого проекта в этом Репозиторий GitHub.

Настройка подключения к базе данных

Чтобы настроить соединение между API Express.js и экземпляром Render PostgreSQL, в корневом каталоге папки вашего проекта создайте db.js файл и добавьте код ниже.

константа кнекс = требовать('кнекс');
константа дб = knex({
клиент: 'пг',
связь: {
строка подключения: 'URL-адрес базы данных',
SSL: {
отклонить неавторизованный: ЛОЖЬ
}
}
});

модуль.экспорт = БД;

Далее откройте index.js файл и добавьте код ниже этого реализует простой REST API с четырьмя маршрутами.

константа экспресс = требовать("выражать");
константа приложение = экспресс()
константа дБ = требовать('./дб')
константа ПОРТ = процесс.env. ПОРТ || 5000

app.use (express.json())
app.use (express.urlencoded({ расширенный: истинный }))

приложение.получить('/', (req, res) => res.send('Привет, мир!' ))

// Получить всех пользователей
приложение.получить('/ пользователи', асинхронный (требование, разрешение) => {
пытаться {
константа пользователи = Ждите БД.выбрать().от('пользователи')
res.json (пользователи)
} ловить (ошибка) {
консоль.error (ошибка)
рез.статус(500).json({ сообщение: «Ошибка получения пользователей» })
}
})


приложение.пост('/ пользователи', асинхронный (требование, разрешение) => {
пытаться {
константа пользователь = Ждите дБ('пользователи').вставлять({ имя: req.body.name }).returning('*')
res.json (пользователь)
} ловить (ошибка) {
консоль.error (ошибка)
рез.статус(500).json({ сообщение: «Ошибка при создании пользователя» })
}
})

// Удалить существующего пользователя
приложение.удалить('/пользователи/: идентификатор', асинхронный (требование, разрешение) => {
пытаться {
константа {идентификатор} = req.params
константа пользователь = Ждите дБ('пользователи').where({id}).delete().returning('*')
res.json (пользователь)
} ловить (ошибка) {
консоль.error (ошибка)
рез.статус(500).json({ сообщение: «Ошибка удаления пользователя» })
}
})

app.listen (ПОРТ, () => консоль.бревно(`Сервер в порту:${ПОРТ}`))

Настройте файл migrate.js

Создать новую папку, сценарии, в корневой каталог вашего проекта добавьте новый файл, миграция.js, и, наконец, добавьте код ниже:

константа дБ = требовать('../дб');
(асинхронный () => {
пытаться {
Ждите db.schema.dropTableIfExists('пользователи')
Ждите db.schema.withSchema ('общественный').создатьТаблицу('пользователи', (таблица) => {
таблица.инкременты()
таблица.строка('имя')
})
консоль.бревно('Таблица пользователей создана!')
процесс.выход(0)
} ловить (ошибка) {
консоль.лог (ошибка)
процесс.выход(1)
}
})()

Этот код создаст новый пользователи таблица в базе данных с двумя столбцами: автоматически увеличивающимся полем первичного ключа и полем имени.

Наконец, добавьте эти команды в свой пакет.json файл.

"скрипты": {
"начинать": "узел index.js",
"мигрировать": "узловые скрипты/migrate.js",
},

Наконец, чтобы создать пользовательскую таблицу в базе данных, вам нужно запустить мигрировать.js файл в виде скрипта на вашем терминале с помощью приведенной ниже команды.

npm запустить миграцию

Однако перед запуском команды обязательно извлеките URL-адрес внешней базы данных из информации о настройках экземпляра PostgreSQL Render и вставьте ее в db.js файл в качестве строки подключения.

Это установит соединение с экземпляром базы данных с вашего локального компьютера, что позволит вам создать таблицу перед развертыванием API. Как только таблица будет создана, вы можете перейти к экземпляру PostgreSQL Render, получить URL-адрес внутренней базы данных, и обновите db.js файл соответственно.

Разверните REST API на рендере

Первый, создать новый репозиторий на GitHub и нажмите код проекта. Затем войдите в свою учетную запись Render, нажмите кнопку Новый+ кнопку и выберите Веб-сервис вариант из выпадающего меню.

Наконец, войдите в свою учетную запись GitHub, выберите репозиторий вашего проекта и подключитесь к нему на Render.

На странице настроек веб-службы укажите имя новой службы, укажите корневой каталог проекта, команду сборки и запуска и, наконец, нажмите Создать веб-службу. После завершения процесса развертывания скопируйте предоставленный URL-адрес, чтобы протестировать конечные точки в Postman.

Протестируйте конечные точки API на Postman

Postman — популярный инструмент для разработки и тестирования API. Чтобы познакомиться с Почтальоном, узнать, как использовать его для тестирования API.

Чтобы протестировать развернутый API, создайте ПОЧТА запрос в /пользователи конечная точка для хранения данных в базе данных PostgreSQL.

Наконец, сделайте запрос GET для получения сохраненных данных.

Является ли рендеринг жизнеспособной альтернативой?

Render обеспечивает простой процесс установки и бесшовную интеграцию с популярными системами контроля версий, что делает его хорошей альтернативой облачной платформе хостинга.

Кроме того, его конкурентоспособная модель ценообразования и встроенная поддержка популярных инструментов разработки делают его надежным и удобным для пользователя вариантом как для побочных проектов, так и для крупных коммерческих приложений.