Хобрук: Ваш путь к мастерству в программировании

Дочерний процесс Node.js с CasperJs: не удается найти модуль «каспер»; требуется заявление

Я не уверен, что мне не хватает общего понимания «требования», но если я попытаюсь включить casperJs в дочерний процесс узла, я не смогу использовать модуль casper.

родитель.js

var exec = require('child_process').exec;
for (var i = 0; i < 3; i++) {
    exec('node child.js', {},
        function(err, stdout, stderr) {
            if (err) {
                throw err;
            }
            console.log(stdout);
        }
    );
};

ребенок.js

var casper = require('casper').create({
    timeout: 180000
});
var meteorUrl = "http://hiddenURL/";

casper.start(meteorUrl, function(response) {
    var _status = response.status;
    if (_status == '200') {
        this.echo("Page: " + meteorUrl + " loaded.");
    } else {
        this.die("Page not loaded! [" + _status + "]", 1);
    }
});

casper.run();

Терминал

$ casperjs --version
1.1.0-beta3

$ casperjs child.js
Page: http://hiddenURL/ loaded.

$ node parent.js
Error: Cannot find module 'casper'

  • Вы использовали установку npm? У вас есть package.json, и вы добавили casper в качестве зависимости? 13.06.2015
  • @DavidKnipe Я использовал установку npm; У меня есть package.json; как добавить каспера в качестве зависимости? 13.06.2015
  • Извините, я проигнорировал вас, потому что это выглядело так, как будто Артёму Б удалось это исправить, и, похоже, он знал о каспере, чего не знаю я. Чтобы добавить зависимость к package.json, просто добавьте строку внутри объекта "dependencies" следующим образом: "casper": "*". (Не забывайте запятые между зависимостями — это должен быть допустимый JSON.) Если у вас еще нет "dependencies", добавьте его как дочерний элемент объекта верхнего уровня, т. е. не внутри другого объекта. См. docs.npmjs.com/files/package.json#dependencies. 14.06.2015

Ответы:


1

CasperJS не является модулем node.js, о чем на самом деле говорит сообщение об ошибке. Это отдельная программа, которая для удобства устанавливается только через NPM.

Сдача

exec('node child.js', {},

to

exec('casperjs child.js', {},
13.06.2015
  • Это вроде как помогло решить проблему, но я получаю: { [Ошибка: Ошибка команды: ] kill: false, code: 1, signal: null } Fatal: [Errno 2] Нет такого файла или каталога; вы установили фантомы? 13.06.2015
  • Что произойдет, если у вас есть exec('phantomjs --version', {}, в этом месте? 13.06.2015
  • На самом деле я нашел проблему. Я передаю аргумент, который не упоминаю здесь в коде. Но я не уверен, почему он выдает эту ошибку. Если я запускаю файл с узлом child.js, он работает нормально. Если я запускаю его с casperjs child.js, он выдает ошибку?! 13.06.2015
  • Я действительно не знаю, как это возможно, чтобы node child.js работал нормально. 13.06.2015
  • Новые материалы

    Структуры данных в C ++ - Часть 1
    Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..

    Как я опубликовал свое первое приложение в App Store в 13 лет
    Как все началось Все началось три года назад летом после моего четвертого класса в начальной школе. Для меня, четвертого класса, лето кажется бесконечным, пока оно не закончится, и мой отец..

    Что в лицо
    Очерк о возвращении физиогномики и о том, почему мы должны это приветствовать. История начинается со странной науки. Р. Тора Бьорнсдоттир, Николас О. Рул. Видимость социального класса по..

    Почему шаблоны проектирования и почему нет?
    Сложность — мать всех проблем в программировании. Программное обеспечение должно быть разработано с точки зрения того, кто его поддерживает, а не того, кто его пишет, потому что программное..

    Создание дизайна обуви с помощью машинного обучения
    Обувь. Что подождать? Я думал, что речь пойдет о машинном обучении! Ну это так. Если бы вы пошли на Amazon, сколько обуви вы бы нашли? Наверное, много, не так ли? Но много ли в них..

    GraalVM в 2022 году: итоги года
    2022 год был очень продуктивным для проекта и сообщества GraalVM. Вместе мы разработали множество новых функций, выпустили GraalVM для последних версий Java и новых платформ и увидели несколько..

    Быстрая разработка: волшебный мир больших языковых моделей
    РУКОВОДСТВО Быстрая разработка: волшебный мир больших языковых моделей Подход, основанный на данных, для получения наилучшего ответа Искусство и наука Можно ли совместить машинное..