Ответы пользователя по тегу Express.js
  • Express + Handlebars?

    rockon404
    @rockon404
    Frontend Developer
    Вы, конечно, извините, но:
    1. Читайте документацию и смотрите исходники.
    2. Читайте документацию и смотрите исходники.
    3. Читайте документацию и смотрите исходники.

    Раз вам мало знать, что вьюхи лежат по-умолчанию в папке views, лайауты в layouts, а в шаблоны можно передавать данные вторым аргументом метода render, то изучайте исходники и увидите собственными глазами как именно это все работает.
    Ответ написан
    1 комментарий
  • Что выбрать для server side rendering react?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Лучше сразу писать изоморфный проект, так как есть множество ньюансов которые стоит учитывать при разработке таких приложений. На github можно найти готовые боилерплейты. На написание своего может уйти от пары часов до пары дней, в зависимости от требуемого набора инструментов. Так же вы можете посмотреть в сторону таких инструментов как next.js, razzle, after . Но точно не знаю, насколько легко, при необходимости, мигрировать с таких решений.
    Ответ написан
    6 комментариев
  • Как загрузить и хранить фото на сервере (React+Express+Mongo)?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Используйте FormData для отправки файлов:
    const formData = new FormData();
    
    formData.append('file', someFile);
    axios.post('/uploadFile', formData, {
      headers: {
        'Content-Type': 'multipart/form-data',
      },
    });


    На сервере используйте midlleware для обработки multipart/form-data. Вам подойдет: formidable, busboy, multer или любое другое middleware, решающее эту задачу.
    Ответ написан
    3 комментария
  • Использование Api сайтом, нужно ли?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Почему нельзя, просто, выделить common часть для обоих модулей?
    А в модель поста можно прописать метод который будет доставать и мапить результаты.

    Тогда у вас будет примерно такой код в rest:
    router.get('/', routeCache.cacheSeconds(20), async (req, res) => {
        const posts = await models.Post.getPostsList({ limit: 10 });
    
        res.json(posts);
    });


    и такой для сайта:
    router.get('/', async (req, res) => {
        const posts = await models.Post.getPostsList({ limit: 10 });
    
        res.render('index', { posts_list: posts });
    });


    Все просто и никаких костылей.
    Обращения сервера сайта к rest это лишний код и лишние операции.

    Метод res.json() сам добавляет к ответу заголовок Content-Type со значением 'application/json' если он не добавлен до этого.
    Ответ написан
    Комментировать