16.05.2020 1) Сделать контроллер, который методом get будет отдавать одно сообщение по номеру (/message/1, /message/2) --- done 2) Сделать фронт для чата используя fetch с get и post --- done 3) Добавить в бэк методы put и delete для изменения и удаления сообщений. Используйте адреса вида /message/1, /message/2 --- done 4) добавить на фронт удаление и изменение сообщений --- done ----------------------------------------------------------------- 20.05.2020 на базе кода с занятия, доделать фронт (расположить его в public/index.html и `public/index.js и тп.): 1) умеет визуально удалять и изменять сообщения с отправкой соответствующих запросов на сервер --- done 2) умеет прикреплять файл к сообщению, используя заливку и дополнительное поле в объекте сообщения (file или image с именем залитого на сервер файла) --- done 3) умеет показать картинку (или скачать файл) в сообщении на фронте --- done 4) ответы на сообщения. Коль у нас свободная структура сообщения, то можно добавить кроме поля image номер сообщения, на которое это сообщение является ответом. Фронтенд должен это обеспечить: - запоминания на что отвечаем - отправку replyToId вместе с nick и message - при приеме сообщения с таким полем включить в ответ исходное сообщение визуально Бэк: продумать ответы на сообщения. Для этого в ответе надо хранить номер сообщения, на который отвечают. ----------------------------------------------------------------- 23.05.2020 ДЗ: на базе кода предыдущего занятия и материала лекции заменить массив history на класс Message полученный с применением библиотеки mongoose на базе схемы. --- done Для поиска сообщений используйте статический метод Message.find, для создания сообщения new Message. Документы в mongo при использовании mongoose представлены объектами javascript. Для сохранения используйте метод save. --- done Добавьте по аналогии класс Image, который будет хранить в базе данных описание картинки. Схема может включать имя файла на диске, размер и т.п. Так же по возможности используя библиотеку sharp создайте уменьшенные версии картинок и сохраните их в других именах файлов - например с добавкой _NNN (NNN - размер картинки в пикселях). В таком случае добавьте в схему документов Image поля для имен файлов уменьшенных версий. Добавьте в Message ссылки (mongoose.Types.ObjectId) на картинки (image) и сообщение для ответа.(replyTo) приведите фронт в соответствие обновленному серверу.