• Как сортировать пользователей по последнему сообщению в базе mongoose,nodejs?

    Robur
    @Robur
    Знаю больше чем это необходимо
    что-то в духе:
    .aggregate(
        [
            { "$match": { "to": 'admin'  } },    
        { "$group": {_id: "$authorId", "createdAt": {$max: "$cretedAt"}},
          {$lookup: {
     {
             from: "user",
             localField: "_id",
             foreignField: "_id",
             as: "user"
           }
            { "$sort": { "createdAt" : 1 } },
    },
        ])
    Ответ написан
  • Как в moment js сделать так чтобы каждое число он мог преобразовать к возможному дню, месяцу, году?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Есть ли какой то метод в moment js если мы ему передадим формат YYYY.MM.DD он вернет нам 2001.Feb.03


    Есть для вашего примера будет 'YYYY.MMM.DD'
    Ответ написан
  • Опасно ли уходить работать в стартап?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Я бы не рискнул, у меня опыта в продажах ноль. А за себя - самостоятельно решайте.

    Чтобы можно было решить опасно или нет - вам надо знать что-то про этот стартап - кем/как основан, какой оборот, есть ли инвестиции, burn rate, какая стадия продукта, есть ли клиенты, позитивный ли кеш флоу и так далее.

    Это вам вряд ли кто-то тут расскажет, да и в самом стартапе тоже.

    Если это вопрос "ну в принципе как оно может выйти если туда пойти" - то тут ответ простой - может выйти хорошо, а может и плохо. Вот и решайте.

    В целом, если это настоящий стартап - то всегда опасно. Это фактически определение стартапа.
    Ответ написан
  • Как тут можно реализовать очистку формы?

    Robur
    @Robur
    Знаю больше чем это необходимо
    да, возможно. сразу после строчки if (json.result == "success") {
    добавляйте ваш код очистки.
    Ответ написан
  • Как организовать хранение личной информации (аккаунты, календари, подписки и т.п.)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    попробуйте https://en.wikipedia.org/wiki/Mind_map
    мне лично не зашло, но многим наоборот.

    программ с реализацией этой идеи тоже достаточно - в том числе кроссплатформенных
    Ответ написан
    Комментировать
  • Как на javascript замерить время выполнения функции (в наносекундах)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    точное время выполнения одного вызова функции получить довольно сложно.

    во первых - performance.now возвращает дробное число, поэтому там в принципе может быть наносекундная точность. однако стандарт определяет что точность должна быть 5 микросекунд. Плюс браузеры могут специально занижать точность чтобы бороться с некоторыми атаками.

    поэтому правильно вызывать функцию много раз и считать среднее.
    так же в ноде есть process.hrtime которая дает наносекунды.

    оба этих метода "в лоб" не дадут нормального результата. Почему? потому что в реальности происходит много всего интересного при выполнении кода.

    в движке есть неимоверное количество оптимизаций, и функция вызванная 10 раз будет иметь совершенно другой код чем функция вызванная 100 раз. То же касается и типов параметров - например вы можете передавать целые или дробные числа.
    На одну вашу написанную js-функцию движок сгенерирует несколько функций которые это реализуют. У этих функций может быть совершенно разный код с разной произодительностью.

    Переключение происходит на лету и в общем виде вы не знаете когда это происходит.

    поэтому само по себе замерение скорости "функции" имеет мало смысла, так как там их несколько внутри. Если интересны детали - погуглите JIT, AOT и v8 optimizations.
    Сейчас важно то что есть "холодные" функции которые работают медленее но надеждее и как правило используются сразу и есть "горячие" варианты, которые компилятор начинает использовать когда видит что код вызван много раз, и условия не меняются. "Горячие" работают быстрее.

    при прогоне цикла сначала будет работать "холодный" вариант, затем в какой-то момент срабатывает оптимизация, он переключается на более быстрый. Таких переключений может быть несколько.

    зная это, код можно сначала разогреть а потом померять скорость. скорее всего на разогретом коде будет работать один и тот же вариант.

    или, как вы сказали, запустить его миллион раз (думаю хватит и десятка тысяч), и первые запуски холодного кода не будут особо влиять. Это можно определить по тому как растет производительность с увеличением итераций, в какой-то момент она перестанет это делать.

    И тут самый главный момент - даже если вы замерите эту скорость, что вы будете делать с этим знанием? В реальной программе при выполнении этого кода скорость может быть совсем не такая как вы намеряли. Эти тесты годятся только для своего общего развития

    На практике имеет смысл измерять скорость у функций которые выполняются намного дольше И там где это создает проблемы. погуглите термин "преждевременная оптимизация".
    В этом случае обычно понятно что создает задержки и измерить время работы одного вызова не составляет труда.
    Если же функция работат так быстро что вы не можете понять насколько именно, то вряд ли вам потребуется это выяснять.

    Для практических задач в браузере есть профайлер, если нужно выяснить что же тормозит в конкретном коде, правильнее всего начать с него.
    Ответ написан
    5 комментариев
  • Как сделать выборку из базы mongodb после сортировки?

    Robur
    @Robur
    Знаю больше чем это необходимо
    но т.к. записи добавляются постоянно такое не сработало

    что именно "не сработало"?
    если у вас сортировка по дате создания то новые записи должны добавляться всегда в конец списка, поэтому должно работать нормально - если вы смотрите с 50 по 100 и там добавилась 1001-я, то порядок первых 1000 не должен меняться, и на загрузку следующих с 100 по 150 никак это добавление не должно влиять
    Ответ написан
  • Где хранять токены React js + Rest api php?

    Robur
    @Robur
    Знаю больше чем это необходимо
    fetch won’t send cookies, unless you set the credentials init option. (

    используйте параметр credentials и fetch будет отправлять куки какие там у вас стоят.
    https://developer.mozilla.org/en-US/docs/Web/API/W...
    Ответ написан
    Комментировать
  • Eslint Top level await?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Может неправильно плагин babel подключаю.

    видимо. И вам не плагин нужен, а другой парсер https://github.com/babel/babel/tree/main/eslint/ba...
    Ответ написан
    2 комментария
  • Как решить проблему с js в google chrome?

    Robur
    @Robur
    Знаю больше чем это необходимо
    вам надо не в интернете искать решение а перевести ошибку и подумать.
    Давайте я помогу - сегодня хорошее настроение.

    Ошибка говорит "запросы у которых в url символы '<' '\n' '\t' '\r' блокируются.
    вам надо найти то место где делается этот запрос, отдебажить, посмотреть на урл и найти там эти символы. Потом подумать откуда они там взялись и исправить то место.

    Судя по тому что вы делаете что-то по уроку, мест где вы делаете http запрос у вас вряд ли более одного.
    Ответ написан
    1 комментарий
  • Имеет ли смысл сделать код открытым для приложения?

    Robur
    @Robur
    Знаю больше чем это необходимо
    имеет смысл - значит есть какая-то цель и результат. какой результат вы хотите достичь за счет открытия кода?
    Если понимаете какой и он для вас имеет ценность - то смысл есть. если никакого - то нет.
    Ответ написан
    3 комментария
  • Проблемы в реализации синтаксического анализатора?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вы хотите работу сокурсника переделать под свое задание что ли?

    Если вы хотите научиться писать компиляторы-анализаторы, то стоит понимать что это тема фундаментальная и сначала надо вникнуть в теорию, а потом уже писать код. По другому не получится.
    тут стоит начать с классики https://en.wikipedia.org/wiki/Compilers:_Principle...
    ну или хотя бы вникнуть как работают синтаксические анализаторы, какие бывают, и все так далее. Разобрать текст на лексемы - это самый простой шаг, можно сказать примитивный.

    взять код от одной грамматики и переделать его под другую без понимания что в нем вообще происходит - такое себе развлечение. А если понимание есть - то вы просто берете и пишете этот код.

    Если вам просто надо чтобы кто-то за вас "код подправил", то это не тот ресурс.
    Ответ написан
    Комментировать
  • Передача параметров из глобального state в локальный и обратно?

    Robur
    @Robur
    Знаю больше чем это необходимо
    не надо одно и то же хранить в разных местах и "прокидывать стейт из Parent в Child"

    поднимайте стейтв родителя и передавайте нужные значение в пропсах, в дочерних компонентах используйте напрямую из props. Если надо изменить - из дочернего дергайте обработчик, и пусть родитель меняет то что надо поменять и передает новые пропсы.

    ну или как уже сказали - контекст, если этот стейт нужен много где .
    Ответ написан
    Комментировать
  • Как проксировать исходящий запрос на Nodejs?

    Robur
    @Robur
    Знаю больше чем это необходимо
    у request есть параметр "proxy"
    и большой раздел в доках
    https://github.com/request/request#proxies
    Ответ написан
    Комментировать
  • Как сделать качественный и расшияремый продукт, используя pug, webpack?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Странный вопрос - чтобы сделать качественный и расширяемый проект, надо делать его качественно и закладывать расширяемость.
    Для большей конкретики в ответах надо больше конкретики в вопросе.

    "Адекватная модульность" заложена в вебпак и язык, остальное уже зависит исключительно от того как вы это используете.
    Разбивайте приложение на чанки и загружайте только нужные. поддержка этого опять же есть в вебпаке, начните отсюда https://webpack.js.org/guides/code-splitting/

    если вы хотите раздельно грузить css то может помочь https://webpack.js.org/plugins/mini-css-extract-plugin/
    но я бы не рекомендовал это делать от слова совсем.

    бэм уже не так актуален как раньше. но опять же если хочется - берите и применяйте.
    css модули вам в помощь.
    Ответ написан
    1 комментарий
  • Каким способом можно написать бота для игры?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если вы шарите в этом, скажите реально ли такое написать на NodeJS для того же самого альбиона и какими библиотеками можно это реализовать?


    реально.
    библиотеки найдете когда определитесь каким именно способом вы будете этого бота писать и принцип по которому он будет работать.
    Не найдете - приходите сюда с конкретными вопросами.
    заранее напишу что "библиотеки для бота для альбиона" скорее всего нет.
    Ответ написан
    Комментировать
  • Как из дробного числа (13.123456) убрать все, что перед точкой вместе с точкой?

    Robur
    @Robur
    Знаю больше чем это необходимо
    x.toFixed(0) //будет строка
    
    либо 
    
    Math.floor(x) // для x>0
    Math.ceil(x) // для x<0
    Ответ написан
    2 комментария
  • Какие преимущества отдельного фронтенд от серверного рендеринга страниц?

    Robur
    @Robur
    Знаю больше чем это необходимо
    - скорость
    - автономность ( если надо)
    - можно делать на порядок более сложные системы.
    - разделение кода. бекенд может быть просто rest api, становится заметно проще. один и тот же бек можно использовать для фронта, мобилок, интеграций сервер-сервер.
    - бек и фронт могут пилить разные люди/команды независимо в разных проектах и репозиториях.
    - фронтендовые фреймворки имеют те же преимущества для фронта что бекендовые - для бека. Генерировать страницы современного веб-приложения на шаблонизаторах на бекенде - примерно то же что писать бекенд на чистом html без php.

    наверняка еще есть но мне лень сейчас много думать на эту тему.
    Ответ написан
    1 комментарий