<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):

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