从节点js函数返回json

时间:2019-08-16 21:24:10

标签: node.js json

我是Node js的新手。我正在尝试从特定网站的“选择”选项卡中抓取一些值和名称。我的代码如下,

const rp = require('request-promise');
const crio = require('cheerio');

const url = 'https://myurl';

const getOptions = function(optionName,ignoreOption) {
    return rp(url)
      .then(function(html) {

            crio('[name='+optionName+']', html).find('option').each((i,op) => {

                if(crio(op).text() != ignoreOption && crio(op).text() != '')
                    return {
                        name: crio(op).text(),
                        value: crio(op).val(),
                    };
            })

      })
      .catch(function(err) {
        //handle error
      });
  };

getOptions('test','-- Select company name --')
.then( data => 
console.log(data)
);

当我尝试运行此代码时,得到的结果为“未定义”。如何从此处的getOptions函数获取return json响应?

1 个答案:

答案 0 :(得分:0)

您没有在使用crio的then函数中返回任何值。

更改

crio('[name='+optionName+']', html).find('option').each((i,op) => {

return crio('[name='+optionName+']', html).find('option').map((i,op) => {

请注意使用地图,而不是每个地图。