javascript - 新萌遇到node报错,请前辈指点
PHP中文网
PHP中文网 2017-04-11 13:06:04
[JavaScript讨论组]

代码如下

// 引入依赖
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.
    at emitNone (events.js:86:13)
    at Stream.emit (events.js:185:7)
    at Unzip.

没找到原因。

PHP中文网
PHP中文网

认证0级讲师

全部回复(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(...)

就可以了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号