新萌遇到node报错,请前辈指点
代码如下
// 引入依赖
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你传递的不是JSON数据吧。
试一试res.json(...)
但是这样要引入bodyParser,先npm install安装一下,然后:
var bodyParser = require('body-parser');
建议新手先用express生成的模版框架,看看模版怎么写的
所以你现在可以:
Google一下怎么生成express模版。
把res.send中的send变成json
$('#topic_list .topic_title').map(...)
问题出在这句
换成
$('#topic_list .topic_title').each(...)
就可以了