Javascript 使用cheerio nodejs删除表数据

Javascript 使用cheerio nodejs删除表数据,javascript,json,node.js,cheerio,Javascript,Json,Node.js,Cheerio,我是cheerio的新手,希望在一个特定的表中删除所有团队名称,并以json的形式返回数据,例如 { name: "Manchester City" } 到目前为止,我已经在下面创建了一个api来返回数据,但是我似乎无法访问任何特定的元素?我不断得到以下响应TypeError:将循环结构转换为JSON 代码 app.get('/api/standings', function(req, res, next){ var base = "http://www.skysports.

我是cheerio的新手,希望在一个特定的表中删除所有团队名称,并以json的形式返回数据,例如

{
    name: "Manchester City"
}
到目前为止,我已经在下面创建了一个api来返回数据,但是我似乎无法访问任何特定的元素?我不断得到以下响应
TypeError:将循环结构转换为JSON

代码

app.get('/api/standings', function(req, res, next){

    var base = "http://www.skysports.com/football/competitions/premier-league/tables";
    var age = 2015;

    request.get(`${base}`, function(err, response, body) {

            var $ = cheerio.load(body);

            //get standings
            var classes = $('standing-table__table tbody tr').each(function()   {

                var d = $(this);
                var td = d.children('td.standing-table__cell standing-table__cell--name');
                return td.eq(0).text();
            });

            res.json(classes);

    });

});

首先,您使用的cheerio函数不正确。您需要
.map
而不是
。每个
Each
只是根据迭代器函数中的代码进行迭代而不返回任何有用的内容,而
map
将迭代器函数返回的所有内容收集到一个数组中。因此,切换到
.map
,您应该得到一个字符串数组(假设您的选择器和HTML解析是正确的)。您将拥有
[“名称1”、“名称2”、“名称3”]

然后需要将其转换为所需的格式,即对象数组,因此需要在此处再次调用
.map

res.json(classes.map(function (name) {return {name: name}}));

你查到你得到的错误了吗?这种类型的问题已经在stackoverflow上解决了很多次。可能重复的@Crediteson与此有什么关系?错误是告诉您您的数据有一个循环引用。要将其转换为JSON,需要打破这个循环。