Ответы пользователя по тегу Node.js
  • Как исправить ошибку в схеме mongoose?

    Robur
    @Robur
    Знаю больше чем это необходимо
    ругается потому что у вас logo в одном месте описано как File, в другом как string. очевидно что это разные вещи и он правильно делает что ругается.
    разберитесь с этим для начала, потом можно будет думать дальше, если будут еще какие-то проблемы.
    Ответ написан
  • Нужно ли обнулять переменные после использования?

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

    Если у вас нет утечек памяти, то все ненужное сборщик мусора и так соберет, а все нужное вы все равно не сможете "обнулить".
    Ответ написан
    1 комментарий
  • Почему Stream buffer не заполняется?

    Robur
    @Robur
    Знаю больше чем это необходимо
    я так понимаю что вызывая next() в методе _write(), я сигнализирую об успешной записи данных и буфер чистится, я прав?


    да:
    The callback function must be called synchronously inside of writable._write() or asynchronously (i.e. different tick) to signal either that the write completed successfully or failed with an error.

    All calls to writable.write() that occur between the time writable._write() is called and the callback is called will cause the written data to be buffered.
    Ответ написан
    Комментировать
  • Каким образом проходит авторизация через соц. сети на сайте React и Express?

    Robur
    @Robur
    Знаю больше чем это необходимо
    не знаю насчет vk. но "соцсети" используют oauth в той или иной степени.

    Схема с oauth чаще всего такая:
    3. после этого меня перекидывает на мое приложение (которое на react), которое получает токен из урл-параметров и сохраняет в локал сторадже
    4. мое приложение(react) идет на сервер(express) с этим токеном чтобы зарегистрировать пользователя.
    5. сервер проверяет токен на валидность (запрашивая соцсеть или еще как-то) и если все ок - создает пользователя/сессию/делает что угодно.
    Ответ написан
    Комментировать
  • Стек MEAN ( Можно ли заменить MongoDB на MySQL )?

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

    Если хотите быстро и нормально, возьмите nestjs + graphql, на клиента apollo + любой фреймворк.
    потратите какое-то время чтобы прочитать что это все такое, доков навалом, зато потом будете думать о том как приложение свое писать, а не о том как и какие технологии/либы прикрутить чтобы что-то заработало.
    Ответ написан
    Комментировать
  • Почему в Javascript сумма чисел 18014398509481984 и 18014398509481984 равна 36028797018963970?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Ответ написан
    Комментировать
  • Как исправить Error: getaddrinfo ENOTFOUND?

    Robur
    @Robur
    Знаю больше чем это необходимо
    как использовать прокси есть в доках https://github.com/request/request#proxies
    Это если ваш корпоративный прокси вообще даст вам обращаться к серверам потенциального противника.

    В браузере у вас этот линк открывается?
    Ответ написан
  • Как добавить данные в существующий документ коллекции mongodb?

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


    Очевидно что вы вместо обновления существующего создаете новый. Чтобы это изменить, надо перестать создавать новый, а вместо этого обновлять существующий. Тут вам upsert подойдет.

    Как можно отвести один документ на одного пользователя, что бы на каждого пользователя был свой документ в коллекции mongodb.


    в каждый документ сохраняйте какой-нибудь id пользователя, потом каждый раз ищете, есть ли уже документ для нужного id, если есть, обновляете, если нет - создаете новый.
    Ответ написан
  • Способы обновления большого количества объектов Mongodb?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1. зачем вам сначала все удалять, потом создавать? попробуйте https://docs.mongodb.com/manual/reference/method/d... сравните скорость, что быстрее то и используйте.
    2. вообще извращение какое-то, так вам проще просто json - файл в облаке держать - читаться/обновляться будет быстрее.
    Ответ написан
  • Можно создавать веб-приложения на React Native и Nodejs?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Можно.
    документация как выложить android - приложение - в документации ReactNative, подробно и с примерами.
    Чтобы разобраться как выложить nodejs - надо разобраться с тем как и где поднять свой сервер и как запускать на нем свои nodejs-сервисы, единой схемы нет, тема очень обширная. начните с гугления express+production+heroku+vps+nodejs deploy в разных комбинациях
    Ответ написан
    Комментировать
  • Как сформулировать тело запроса к Graphql с помощью npm request?

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

    Как сделать - создать правильный HTTP запрос в соответствии со спецификацией. Копаться лень но по моему там просто post-запрос с query в виде json в теле запроса.

    Как этот body переделать под request-npm?

    никак не надо, для начала попробуйте отправить body как body

    но ничего не работало

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

    Пробовал formData, form, qs,

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

    Возьмите postman и сделайте этот запрос в нем. Как только заработает - у вас будет пример что нужно сделать в request.
    Ответ написан
    Комментировать
  • Как добавить новый пункт в JSON на node js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    прочитайте всех пользователей из файла в массив, добавьте им всем новый пункт ("user.newProp = 2") в цикле, потом сохраните обратно.
    Ответ написан
    6 комментариев
  • Проблема с базой данных?

    Robur
    @Robur
    Знаю больше чем это необходимо
    То на 2-м обновлении

    А вы перед эти 2-м обновлением установили снова новое соединение в базу?
    Ну и остается вопрос зачем вам вообще соединение закрывать после запроса. запустилось приложение, открыли, завершаете приложение - закрыли, вышли.
    Ответ написан
    2 комментария
  • Как реализовать создание пользователей с не базовой ролью в приложении с RBAC?

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

    вызов auth/register доступен всем, создается прользователь с обычной ролью, на вызов auth/register-admin уже стоят права доступа и этот эндпоинт могут вызывать только те кто имеет право (и это правильнее назвать не register-*, а create-*), он создает пользователя с соответстующей ролью вместо базовой.

    вариантов по сути два - либо пользователь себя регистрирует с базовой ролью, и его потом "повышают" те у кого на это есть право, либо его создают заранее сразу с нужными ролями те у кого есть такое право.
    Ответ написан
    Комментировать
  • Не пойму ошибку в async await?

    Robur
    @Robur
    Знаю больше чем это необходимо
    раз он не на промисах, то return await connection.query
    сработает сразу после вызова query. await ждет промиса а его там нет. Почитайте подробнее как async/await работает.

    вам нужно конвертировать это в промисы, либо через utils.promisify,
    либо
    const getDataDB = q=>{
      return new Promise(( resolve, reject) => connection.query(q, (err,result)=>{
        if(err) reject(err);
        console.log(1);
    
        resolve(result);
      }));
    };
    Ответ написан
    1 комментарий
  • Как принимать необработанные данные?

    Robur
    @Robur
    Знаю больше чем это необходимо
    вы можете использовать Buffer.toString() с нужной кодировкой чтобы получить строку.
    например Buffer.toString('hex') выдаст вам '0117800196...', каждые две цифры - один байт.
    или другие кодировки попробуйте, если так не устраивает.
    но вообще работать лучше с данными в их первоначальном виде - с числами. вместо '\x01' вы берете первый байт и получаете 1. вместо "\x0386400604920000" вы берете байты попорядку и получаете 3 86 40 06 04 и тд.
    Это куда удобнее, чем пытаться разбирать строку, которая случайно получилась из этих данных.
    Если хотите прямо вот 1в1 как в nginx, то найдите как оно там форматируется и напишите такое же. Вопрос зачем конечно остается.
    Ответ написан
  • Как сессии работают под капотом?

    Robur
    @Robur
    Знаю больше чем это необходимо
    там всего 4 файла по 100-150 строк каждый (половина jsdoc). Зачем вам руководство если вы можете просто заглянуть и посмотреть? Комментарии есть, принцип очень простой.
    https://github.com/expressjs/session/tree/master/s...
    Ответ написан
    3 комментария
  • Как исправить код?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Что значит "после завершения кода"? какого кода?
    Все у вас выполняется нормально и попорядку. А то что undefined какой-то выводится - так это где-то еще а не в этом коде.
    Ответ написан
    Комментировать
  • Регулярные действия в nodejs?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Есть более чем один пакет для таких дел. погуглите nodejs scheduler
    Какой выбрать - по вашим предпочтениям и задачам. cron тоже можно. Возможно вам и setInterval отлично подходит, в чем именно его "непрактичность"?
    Я использовал https://www.npmjs.com/package/agenda - свои плюсы и минусы.
    Ответ написан
    Комментировать
  • Ментор или план прокачки?

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

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