Skip to content

proger-coder/NodeShop_ItGid

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