新萌遇到node报错,请前辈指点

发布于 2022-09-03 19:49:58 字数 1109 浏览 14 评论 0

代码如下

// 引入依赖
const express = require('express')
const superagent = require('superagent')
const cheerio = require('cheerio')

// 建立 express 实例
const app = express()

app.get('/', (req, res) => {
  superagent.get('https://cnodejs.org/')
    .end((err, sres) => {
      if (err) { return next(err) }
      let $ = cheerio.load(sres.text);
      let items = $('#topic_list .topic_title').map((item) => {
        let $item = $(item)
        return {
          title: $item.attr('title'),
          href: $item.attr('href')
        }
      })
      res.send(items)
    })
})

app.listen(3000, () => { console.log('app is listening at port 3000') })

报错如下:

TypeError: Converting circular structure to JSON
    at Object.stringify (native)
    at stringify 
    at ServerResponse.json
    at ServerResponse.send
    at superagent.get.end
    at Request.callback 
    at Stream.<anonymous>
    at emitNone (events.js:86:13)
    at Stream.emit (events.js:185:7)
    at Unzip.<anonymous>

没找到原因。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

微暖i 2022-09-10 19:49:58

你传递的不是JSON数据吧。

试一试res.json(...)

但是这样要引入bodyParser,先npm install安装一下,然后:
var bodyParser = require('body-parser');

建议新手先用express生成的模版框架,看看模版怎么写的

所以你现在可以:

Google一下怎么生成express模版。

把res.send中的send变成json

卸妝后依然美 2022-09-10 19:49:58

$('#topic_list .topic_title').map(...)

问题出在这句
换成
$('#topic_list .topic_title').each(...)

就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文