• Как получить переменную из JavaScript (node.js) в PHP?

    batowski
    @batowski
    1) Вы можете сделать http запрос POST или GET к url по которому находится ваш php скрипт.
    2) Если node.js и php находятся на одном сервере вы можете вызвать нужный php скрипт.
    3) Вы можете использовать веб сокеты, настроив соединение между node.js и php.
    4) Вы можете использовать общую директорию или базу данных в которую будете записывать данные, и оттуда забирать их с помощью php.

    Я бы посоветовал 1 или 2 вариант.

    Пример 1 варианта:
    const axios = require('axios');
    
    axios.post('http://example.com/your-php-script.php', { data: 'your data' })
      .then(response => {
        console.log(response.data);
      })
      .catch(error => {
        console.error(error);
      });


    Получение данных в php:
    $data = $_POST['data'];
    echo $data;


    Пример 2 варианта:
    const { exec } = require('child_process');
    
    const data = 'your data';
    const command = `php /path/to/your-php-script.php "${data}"`;
    
    exec(command, (error, stdout, stderr) => {
      if (error) {
        console.error(`Error executing PHP script: ${error}`);
        return;
      }
    
      console.log(stdout);
    });


    Получение данных в php:
    $data = $argv[1];
    echo $data;
    Ответ написан
    Комментировать
  • Nodejs + soket.io, как получить ответ из telegram бота?

    szQocks
    @szQocks
    правильнее будет пользоваться уже готовыми решениями, и не выносить мозги, ни себе не другим

    https://www.npmjs.com/package/node-telegram-bot-api
    Ответ написан
    1 комментарий
  • Как вызывать функцию с теми же аргументами не более одного раза?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    memoization
    это называется «мемоизация» (не от слова «мем», нет : ) Функция запоминает значения аргументов и результат выполнения. Если уже вызывалась с такими аргументами – вернёт «запомненное» значение, не выполняясь ещё раз. Статья на Хабре

    В качестве кэша можно использовать объект или WeakMap, если аргумент – объект.

    distributed lock
    Из вопроса не вполне понятно: в контексте одного выполнения скрипта только один раз, или глобально? Для глобального случая можно использовать какое-то быстрое хранилище, например, Redis, и механизм MutEx ("mutual exclusion" – взаимного исключения), например RedLock.

    На пальцах: вот есть аргумент X. То ли вызвать функцию, то ли параллельно уже другой процесс выполняет и скоро будет готовый результат — вопрос.

    Генерится случайный ключ. Пара (X, ключ) отправляется в асинхронное хранилище, где если нет ещё сохранённого значения под этот X, ячейка запирается (lock) этим ключом. Тут необходима особенность механизма самого хранилища – в Redis это "NX" – записывать только, если уже нет значения. Это гарантирует, при параллельных запросах, что только чьё-то одно случайное значение запишется. Закон джунглей: первый прибежал — наелся!

    Далее надо прочитать записанное значение и получить ключ. Сравнить со своим ранее сгенеренным ключом. Совпали? Значит, это именно мы заперли этот аргумент, и можно выполнить функцию. Не совпали – параллельный процесс выиграл. Просто запросим готовое значение чуть попозже.
    Ответ написан
    1 комментарий
  • Насколько огромна сфера программирования?

    tentrun
    @tentrun
    Fullstack (asp.net /react, vue, angular) deletant
    Можно все что угодно сделать, фигурку из глины например (питонисты и js'ры любят это делать)
    Ямку вырыть можно в огороде с помощью С++
    Фрукты вырастить можно на Ruby on Rails еще
    А вот нельзя например скамейку заставить самопочиниться ну или черные дыры залатать, ибо там уже нужны SaaS технологии...
    Ответ написан
    Комментировать
  • Как достучаться до вложенной функции?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Согласен с ответом выше, "код с душком".

    В вашему случае функция объявляемая внутри функции всё-равно будет доступна в глобальном неймспейсе, но вызвать её можно будет только после вызова внешней функции. То есть просто можно разделить это на 2 отдельных функции без вложенности.

    как вызвать, ничего не меняя
    func_a(3, 5); //у нас появляется функция func_arg которую теперь можем вызывать
    var_dump(func_arg(7, 9));


    для понимания механизмов
    var_dump(function_exists('func_arg')); //false
    func_a(3, 5);
    var_dump(function_exists('func_arg')); //true


    лучше разделить функции
    function func_a()
    {
    //
    }
    
    function func_arg()
    {
    //
    }
    Ответ написан
    Комментировать
  • Как организовать вывод рандомно?

    kimono
    @kimono
    Web developer
    $output = random_int(0, 1) ? 'lib.block.profile.7' : 'lib.block.profile.3';
    Ответ написан
    Комментировать
  • Как программирование связано с информатикой?

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

    Разработка программного обеспечения никогда не будет строгой дисциплиной с подтверждёнными результатами, поскольку в неё вовлечена деятельность человека.
    Ответ написан
    2 комментария
  • Как изменить путь установки Visual Studio 2019?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    на самой правой вкладке настроек (но изменения доступны только при первичной установке)
    RlUOSvY.png
    Ответ написан
    1 комментарий