.then () может работать, но не после записи
.then () ожидал (я ДУМАЮ!) Обещание. после .write () ничего не осталось.
Вы можете попробовать удалить .write и использовать затем для console.log результатов, как это:
var Xray = require('x-ray');
var x = Xray();
x('https://blog.ycombinator.com/', '.post', [{
title: 'h1 a',
link: '.article-title@href'
}])
.paginate('.nav-previous a@href')
.limit(3)
/* .write('results.json') */
.then(result => {
})
и будет напечатан заголовок и ссылка на страницу, которую вы удалили.
вы можете использовать .then () и внутри, печатать каждый результат в файл, используя что-то вроде fs, например
var Xray = require('x-ray');
const fs = require('fs')
var x = Xray();
x('https://blog.ycombinator.com/', '.post', [{
title: 'h1 a',
link: '.article-title@href'
}])
.paginate('.nav-previous a@href')
.limit(3)
.then(results => {
console.log(results)
let res = JSON.stringify(results, null, 2);
fs.writeFile('results.json', res, (err) => {
if (err) throw err
console.log('result saved!')
})
})
здесь JSON.stringify (results, null, 2) просто берет объект (result является массивом объектов) и превращает его в json (третий аргумент - что 2 - просто делает его красивым)
затем, используя fs.writeFile (модуль нативного узла), вы пишете объект json в results.json
вы даже можете сделать его объектом за объектом, используя forEach ()
как
results.forEach(result => {
//log the individual result and put in on an empty array, and then write the array
})