<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

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

Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Как загрузить файл на сервер в ExpressJS

Как загрузить файл на сервер в ExpressJS

Современные веб-приложения позволяют пользователям загружать изображения и другие файлы. Возможность загрузки файлов является общим требованием при создании REST API в ExpressJS.

В этой статье мы рассмотрим, как выполнить загрузку и сохранение одного файла в NodeJS.

Установка

Сначала давайте создадим новое NodeJS приложение.

# создаем папку и переходим в нее
$ mkdir nodejs-upload-files && cd  nodejs-upload-files

# инициализируем новое nodejs приложение
$ npm init -y

# ставим зависимости
$ npm install express body-parser cors express-fileupload morgan lodash --save

Вот что делает каждый из вышеперечисленных пакетов:

  • express - Популярный NodeJS веб-фреймворк.
  • body-parser - (промежуточное программное обеспечение - мидлвар) разбирает тело входящего запроса и делает доступным его через свойство req.body.
  • cors - другой мидлвар для работы с CORS запросами (совместное использование ресурсов из разных источников).
  • express-fileupload - простое промежуточное программное обеспечение для загрузки файлов. Оно обрабатывает запросы на загрузку файлов на сервер, извлекает эти файлы, если они доступны, и делает их доступными в свойстве req.files.
  • lodash - Библиотека JavaScript, которая предоставляет служебные функции для массивов, чисел, объектов, строк и т.д.

Создаем ExpressJS сервер

После установки необходимых зависимостей приступим к созданию нашего сервера ExpressJS.


const express = require('express');
const fileUpload = require('express-fileupload');
const cors = require('cors');
const bodyParser = require('body-parser');
const crypto = require('crypto');
const _ = require('lodash');

const app = express();

// делаем доступными загрузку файлов
app.use(fileUpload({
    createParentPath: true
}));

// добавляем мидлвары
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

// устанавливаем порт приложения
const port = process.env.PORT || 5000;

app.get('/', async (req, res) => {
  res.send({ message: 'Привет' })
});

// запускаем 
app.listen(port, () => 
  console.log(`Приложение на порту ${port}.`)
);

Загружаем файл

Теперь создадим маршрут, позволяющий пользователям загружать фотографии своего профиля.


app.post('/upload/profile-image', async (req, res) => {

  try {
    // если файлов нет
    if (!req.files) {
      // отправляем ответ, что нет файлов для загрузки
      res.send({
        status: false,
        message: 'Нет файлов для загрузки'
      });
    } else {
      // Используем название поля profile_image из html разметки для получения ссылки на загружаемый файл
      const avatar = req.files.profile_image;

      const filename = crypto.createHash('md5').update(avatar.name).digest('hex');

      // расширение файла
      const extension = avatar.name.substring(avatar.name.lastIndexOf('.') + 1);

      // используем метод mv() для сохранения файла в папке ./user/avatars/
      avatar.mv('./user/avatars/' + filename + '.' + extension);

      // отправляем ответ
      res.send({
        status: true,
        message: 'Файл загружен',
        data: {
          name: filename,
          extension: extension,
          mimetype: avatar.mimetype, // тип картинки, как он пришел от клиента
          size: avatar.size
        }
      });
    }
  }
  catch (err) {
    // отправляем 500 код об ошибке
    res.status(500).send(err);
  }
});

Как работает мидлвар express-fileupload?

Он делает загруженные файлы доступными в свойстве req.files. Например, если вы загружаете файл с именем profile-image.jpg, а название поля для загрузки файла - profile_image, вы можете получить к нему доступ через свойство req.files.profile_image.

Объект profile_image будет содержать следующую информацию:

  • profile_image.name - Имя загруженного файла, т. е. profile-image.jpg
  • profile_image.mv - Функция для перемещения файла в другое место на сервере
  • profile_image.mimetype - Тип файла
  • profile_image.size - Размер файла в байтах
  • profile_image.data - Бинарное представление загруженного файла

Вот так просто можно загрузить файл на сервер в ExpressJS с помощью библиотеки express-fileupload.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.