Как и любые другие приложения, приложения на JavaScript также должны быть хорошо написаны.
В противном случае позже мы столкнемся со всевозможными проблемами.
В этой статье мы рассмотрим некоторые передовые методы, которым следует следовать при написании приложений Node.
Включение кеширования с помощью Redis
Мы можем включить кеширование с помощью Redis, чтобы ускорить работу нашего приложения Express.
Для этого мы можем установить Redis, запустив:
apt update apt install redis-server
Затем в /etc/redis/redis.conf
меняем:
supervised no
to:
supervised systemd
Тогда Redis будет работать под Systemd.
Затем мы перезапускаем Redis, чтобы изменения вступили в силу:
systemctl restart redis systemctl status redis
Затем мы устанавливаем модуль Redis NPM, запустив:
npm i redis
Затем мы можем использовать его, написав:
const express = require('express') const app = express() const redis = require('redis') const redisClient = redis.createClient(6379) async function getData(req, res, next) { try { //... redisClient.setex(id, 3600, JSON.stringify(data)) res.status(200).send(data) } catch (err) { console.error(err) res.status(500) } } function cache (req, res, next) { const { id } = req.params redisClient.get(id, (err, data) => { if (err) { return res.status(500).send(err) } if (data !== null) { return res.status(200).send(data) } next() }) } app.get('/data/:id', cache, getData) app.listen(3000, () => console.log(`Server running on Port ${port}`))
Мы используем клиент Redis для приложений Node, чтобы создать клиент Redis.
Затем мы создаем cache
промежуточное ПО, которое получает данные из кеша Redis, если он существует.
Мы отправляем данные ответа от Redis, если они есть.
Если это не так, мы вызываем наше getData
промежуточное программное обеспечение маршрута, чтобы получить данные из базы данных.
Это делается с помощью метода redisClient.setex
для установки данных.
Включение мониторинга и ведения журнала на уровне ВМ / сервера
Мы можем включить мониторинг сервера или виртуальной машины и ведение журнала с помощью различных инструментов.
Таким образом, мы можем отслеживать любые проблемы, возникающие в приложении.
Скрытые возможности NODE_ENV
NODE_ENV
может существенно повлиять на производительность нашего Node-приложения.
Если мы установим его на production
, кеширование будет включено, и данные будут кэшироваться.
Мы не хотим этого в разработке, так как мы всегда хотим видеть самые свежие данные.
Представления кэшируются в рабочей среде, но не в узле разработки.
Мы можем запустить его с заданным NODE_ENV
с помощью:
NODE_ENV=<environment> node server.js
где server.js
— точка входа в наше приложение.
В производственном режиме приложения Express не заняты постоянной обработкой шаблонов Pug.
ЦП может делать другие вещи из-за кэширования.
Мы можем установить NODE_ENV
, запустив:
export NODE_ENV=production
в Linux и Mac OS.
В Windows мы можем запустить:
SET NODE_ENV=production
Мы можем запустить:
NODE_ENV=production node my-app.js
на всех платформах.
Используйте методы HTTP и маршруты API
Мы должны использовать методы HTTP и маршруты API, соответствующие соглашениям REST.
Например, мы можем написать:
POST /article
илиPUT /article:/id
, чтобы создать новую статью.GET /article
для получения списка статейGET /article/:id
, чтобы получить статьюPATCH /article/:id
для изменения существующегоarticlerecord
DELETE /article/:id
, чтобы удалить статью
Если мы получим по идентификатору, в конце будет параметр идентификатора.
Заключение
Кэширование и установка для NODE_ENV production
ускорения работы нашего приложения.
Соглашения REST полезны для обеспечения единообразия наших API.
JavaScript на простом английском языке
Вы знали, что у нас есть три публикации и канал на YouTube? Найдите ссылки на все на plainenglish.io!