Контакты
Местоположение
Россия, Ростовская обл., Ростов-на-Дону

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (11)

Лучшие ответы пользователя

Все ответы (19)
  • Кто как реализует автозапуск приложений node.js?

    AntiStream
    @AntiStream
    Потоковый программист
    Через systemd очень легко это делается.
    В начале создаём файл сервиса нашего node приложения по следующему типу:

    # nodeapp.service
    [Service]
    Restart=always
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=nodeapp
    User=nodeuser
    Environment=NODE_ENV=production PORT=3000
    WorkingDirectory=/path/to/nodeappdir
    ExecStart=/usr/bin/node app.js
    
    [Install]
    WantedBy=multi-user.target


    После чего делаем следующие действия в консоли:

    sudo cp nodeapp.service /etc/systemd/system/nodeapp.service # копируем его куда надо
    sudo nano /etc/systemd/system/nodeapp.service # смотрим, [редактируем,] [сохраняем,] закрываем
    sudo systemctl daemon-reload # перезагружаем список "демонов"
    sudo systemctl start nodeapp # запустить сервис
    sudo systemctl enable nodeapp # делаем авто запускаемым при старте системы
    
    # другие действия:
    sudo systemctl disable nodeapp # отключаем авто запуск
    sudo systemctl stop nodeapp # остановить сервис
    sudo systemctl restart nodeapp # перезагрузка
    systemctl status nodeapp # посмотреть статус
    journalctl -u nodeapp.service # глянуть логи


    Всё -- так это делается на линукс системах, а как на винде не знаю, там свои заморочки =))
    Ну и надо чтобы systemd был установлен в системе, на убунте он вроде доступен(есть) с версии 14.10
    Ответ написан
    3 комментария
  • Почему числа в JS такие странные?

    AntiStream
    @AntiStream
    Потоковый программист
    Это информатику надо учить, чтобы понять. Числа с запятой хранится в типах данных в 32 и 64 бита (float и double), и у этих типов данные есть соответственно 2^32 и 2^64 возможных состояний. В целых числах у каждого значения есть чёткое состояние. В плавающих числах эти состояния те же самые, что и в целых, но просто они как бы растянуты по алгебраическому представлению, из-за чего и страдает точность. Для примера, если в консоли сделать 1e128+1, то получите всё тоже 1e128 потому, как нету в типе данных такого состояния, которое могло хотя бы округлённо представлять 1e128+1. Даже более того -- если сделать 1e128+1e111, то этого тоже будет не достаточно для изменения состояния 1e128, но при уже 1e128+1e112 получится изменённое состояние : 1.0000000000000003e+128 Компьютер считает не арифметическими числами, а матричными состояниями битов информации.
    Ответ написан
    1 комментарий
  • Почему валидация не работает как нужно Vuetify?

    AntiStream
    @AntiStream
    Потоковый программист
    value это число, а у числа нет длины, надо в начале конвертировать value в строку, чтобы сделать проверку на длину:
    https://codepen.io/artyomsilantiev/pen/jOZGOEL
    Ответ написан
    Комментировать
  • MongoDB: как сменить тип поля с NumberLong на String?

    AntiStream
    @AntiStream
    Потоковый программист
    db.longs.find().forEach( function (x) {
      var oldId = x._id;
      var updateFlag = false;
      if (typeof x._id == "number") {
        updateFlag = true;
        x._id = x._id+"";
      } else if(x._id instanceof NumberLong) {
        updateFlag = true;
        x._id = x._id.toNumber().toString();
      }
      if (updateFlag) {
        db.longs.save(x);
        db.longs.remove({"_id":oldId});
      }
    });
    Ответ написан
    1 комментарий
  • Как переписать POST запрос PHP на Node js?

    AntiStream
    @AntiStream
    Потоковый программист
    getPostResponse ничего не возвращает в данном случаи, тут надо использовать промис для такого, а саму функцию вызывать c помощью async/await...

    (async () => {
        console.log(await getPostResponse());
    })();
    
    function getPostResponse() {
        return new Promise((resolve, reject) => {
        request.post({
            url: 'https://rustxt.ru/api/index.php',
            form: {
                method: 'getSynText',
                text: 'Синонимизация текста совершенно бесплатно'
            }
        }, (err, response, body) => {
            if (err) {
                return reject(err);
            }
    
            resolve(body);
        });
        });
    }
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (2)