garinov
@garinov
Фрилансер

Как правильно открыть текстовый файл скриптом Javascript?

Ситуация такая: делаю "скриншотер" урлов на основе PhantomJS, а список урлов пока храню в текстовом файле. Скрипт, который делает скриншоты (и читает урлы из файла) - на JS. Из консоли запускаю - все хорошо работает, но когда делаю запуск через CRON - не читает файл.

Как это лучше реализовать? Или вообще другую архитектуру? Код ниже:

var fs = require('fs');
var content = fs.read('urls.txt');
var address = content.split('\r\n');

var addlen = address.length;
var counter = 0;

address.forEach(function (entry) {

    // имя файлу присваиваем по юникс-времени
    var now = new Date();
    var name = now.getTime() + '.png';

    var page = require('webpage').create();
    page.settings = {
        javascriptEnabled: true,
        loadImages: true,
        resourceTimeout: 20000,
        userAgent: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) PhantomJS/19.0'
    };

    page.viewportSize = { width: 1024, height: 800 };

    try {       

        page.open(entry, function (status) {

        counter++;

            if (status !== 'success') {
                console.log(counter + '  Unable  ' + entry);                
                if ( counter == addlen ) { phantom.exit(); };
            }

            else {
                page.render(counter + " " + name);
                console.log(counter +' Saccess ' + entry);
                if ( counter == addlen ) { phantom.exit(); };
            }
            page.close();
        });
    }

    catch (e) {
        console.log('Ошибка работы PhantomJS.');
        console.log('Сообщение ошибки:');
        console.log(e);
        phantom.exit();
    }
});

if ( counter == addlen ) { phantom.exit(); };
  • Вопрос задан
  • 555 просмотров
Решения вопроса 1
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Вот так можно реализовать чтение файла https://jsfiddle.net/Politonius/uh2fLao0/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы