Node.js App «Library»: Express.js, Ejs-templating, Multer (upload and delete files).
View app on Heroku: nodexpress-libraryapp
Netology course: Backend-разработка на Node.js
13.01.2022 - 14.07.2022
Author: Gennady Yegupov
My tasks solutions Netology course: nodejs-course
Insert into console:
npm run dev
Method | Url | Action | Comment |
---|---|---|---|
POST | /api/user/login | авторизация пользователя | метод всегда возвращает Code: 201 и статичный объект: { id: 1, mail: "[email protected]" } |
GET | /api/books | получить все книги | получаем массив всех книг |
GET | /api/books/:id | получить книгу по id | получаем объект книги, если запись не найдено вернем Code: 404 |
POST | /api/books | создать книгу | создаем книги и возврашаем ее же вместе с присвоенным id |
PUT | /api/books/:id | редактировать книгу по id | редактируем объект книги, если запись не найдено вернем Code: 404 |
DELETE | /api/books/:id | удалить книгу по id | удаляем книгу и возвращаем ответ: 'ok' |
GET | /api/books/:id/download | скачать файл книги по id | метод отдает на скачиваение файл книги по ее :id |
Develop a CRUD API to work with the "book" entity. Each book instance must contain the following data structure:
{ id: "string", title: "string", description: "string", authors: "string", favorite: "string", fileCover: "string", fileName: "string", fileBook: "string" }
Update the project's routing structure using express.Router().
Install the multer package in the project and create a middleware for loading the book file. Connect and process the created Middleware in the routes for creating data about the book.
Create a route GET: /api/books/:id/download The method sends a book file for download by its :id
Install the ejs template engine in the project
Develop a multi-page interface for working with the "book" entity using the ejs template engine.
Templates:
- index - просмотр списка всех книг (вывод заголовков);
- view - информация по конкретной книге;
- create - создание книги;
- update - редактирование книги.
Follow the step-by-step instructions to publish the project from task 2 on Heroku.