Инструменты пользователя

Инструменты сайта


nodejs:express:korzina:rout

роут (подготовка)

Роут корзины routes/card.js

const {Router} = require('express');//или const express.Router = require('express'); - модуль express
const Card = require('../models/card');
const Course = require('../models/course');
 
const router = Router();
 
 
/**
 * Добавить в корзину
 * первый параметр адрес страницы, в данном случае используется префикс при регистрации ройтера,
 * второй параметр callback - обработчик запроса req - request , запрос от браузера
 * res - response, ответ сервера
 */
router.post('/add', async (req, res) => {
 
    const course = await Course.getById(req.body.id);
 
    await Card.add(course);//метод добавления в корзину
    res.redirect('/card');//редирект н страничку корзины
 
});
 
/**
 * Страница card, вывод корзины
 * первый параметр адрес страницы, в данном случае используется префикс при регистрации ройтера,
 * второй параметр callback - обработчик запроса req - request , запрос от браузера
 */
router.get('/', async (req, res) => {
 
    const card = await Card.fetch();//
    //console.log(card);
    res.render('card', {
        title: "Корзина",//прокидываем параметры в шаблон
        courses: card.courses,
        price: card.price,
        isCard: true
    })//рендерим используя шаблонизатор
});
 
/**
 * Удалить позицию в заказе
 * первый параметр адрес страницы, в данном случае используется префикс при регистрации ройтера,
 * с динамическим параметром id
 * второй параметр callback - обработчик запроса req - request , запрос от браузера
 */
router.delete('/remove/:id', async (req, res)=>{
 
    const card = await Card.remove(req.params.id);//Обращаемся к модели и удаляем позицию
    res.status(200).json(card)//возвращаем статус 200 и json строку
});
 
 
module.exports = router;//Экспортирум роутер

Модель корзины - models/card.js

class Card {
    add(){
 
    }
 
    fetch(){
 
    }
}
 
module.export = Card;
<h2>Корзина</h2>
nodejs/express/korzina/rout.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)