Skip to content

proger-coder/NodeShop_ItGid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

011b025 · Jul 5, 2023

History

32 Commits
Jan 17, 2023
Jan 17, 2023
Jan 17, 2023
Jan 17, 2023
Jan 31, 2022
Jul 5, 2023
Feb 12, 2022
Jul 5, 2023
Jul 5, 2023
Jun 26, 2023
Jan 17, 2023
Jan 17, 2023

Repository files navigation

Ученический проект - магазин на Node. Использовал Express, Pug, Mustard (Css-фреймворк), MySQL БД, хеширование паролей (функция bcrypt).

для себя: схема работы магазина

  • есть БД товаров (название, цена, описание, краткое имя, имя картинки)
  • картинки к товарам лежат на серве
  • попадая на главную, по гет-запросу "/" делается запрос в БД, выкачиваются все товары, передаются через view-engine в pug и там отрисовываются.
  • на каждом товаре есть ссылка типа /item/краткое-имя (взятое из БД во время отрисовки)
  • ...а также кнопка "добавить в корзину", содержащая goodsId = id этого товара из БД;
  • скрипт cart.js, в который кладётся нажатый товар
  • когда в список заказанного (объект) попал товар, через post по адресу /get-goods-info идёт обращение в БД за товарами с данным id (я бы сделал хеширование, чтобы не дёргать БД, но надо подумать - если за время лазанья по сайту товары раскупили??)
  • скрипт cart.js, естественно, работает с localStorage(чтобы не терять данные при перезагрузке страницы)
  • также есть админка, использующая куки и middleware. То есть для пары адресов сначала идёт проверка, если в куках есть сохранённые данные для входа (UUID) и они совпадают с данными в БД, то middleware пускает дальше. Если нет - отправит на страницу входа. Там при введении данных и нажатии идёт проверка (сравнение библиотекой bcrypt между введённым паролем и хешем из базы), если совпало - пускает дальше, а в БД и куку пишется уникальный UUID. Остаётся открытым вопрос про "время жизни" UUID в куке.

About

simple shop based on mySql DB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published