javascript - PokeAPI 问题,无法获取数据
问题描述
所以我试图将 PokeAPI 用于教育目的,我运行这个:
const express = require('express')
const https = require('https')
const app = express()
const port = 3000
app.get('/', function(req,res){
const url = 'https://pokeapi.co/api/v2/berry'
//no uses el mismo nombre de argumentos
https.get(url, function(resp) {
resp.on('data', function(data){
let datos = JSON.parse(data)
console.log(datos)
})
})
res.send('lol')
})
app.listen(port, () => console.log(`Example app listening on ${port} port!`))
在控制台中我得到了这个:
undefined:1
{"count":64,"next":"https://pokeapi.co/api/v2/berry?offset=20&limit=20","previous":null,"results":[{"name":"cheri","url":"https://pokeapi.co/api/v2/berry/1/"},{"name":"chesto","url":"https://pokeapi.co/api/v2/berry/2/"},{"name":"pecha","url":"https://pokeapi.co/api/v2/berry/3/"},{"name":"rawst","url":"https://pokeapi.co/api/v2/berry/4/"},{"name":"aspear","url":"https://pokea
SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at IncomingMessage.<anonymous> (C:\UdemyWeb\PokeProject\app.js:11:30)
at IncomingMessage.emit (events.js:311:20)
at IncomingMessage.Readable.read (_stream_readable.js:512:10)
at flow (_stream_readable.js:989:34)
at resume_ (_stream_readable.js:970:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
我一直在互联网上询问,我什至问他们的懈怠但没有得到回应,我认为这是我从 API 获取数据的方式,但我想知道为什么只使用这个 API 而不是其他人,我已经尝试过使用 weatherAPI 和 D&D API,完全没有问题。谢谢。
解决方案
我敢打赌,其他 api 也会出现这个问题。也许其他反应很小,所以他们都带着第一块到达。我建议使用http
像axios这样的库。如果您想自己处理块,则必须聚合所有数据并监听结束事件。
let data = '';
resp.on('data', function(chunk) {
data += chunk;
});
resp.on('end', function() {
console.log(JSON.parse(data));
});
我向您推荐的另一本好书是在 Node.js 中发出 HTTP 请求的 5 种方法
推荐阅读
- android - Flutter:默认标签栏控制器在滑动后不保持状态
- javascript - 将函数传递给 React 中的组件
- raml - RAML Osprey-Mock-Service TypeError:无法读取 null 的属性“absolutePath”
- asp.net-mvc - Sitecore 或 IIS URL 重写中的 301 重定向
- magento - Magento 1 - 为什么默认的联系我们路径是“/contacts”?
- unix - 将差异与抑制通用行和上下文选项并排结合
- docker - 更新 Jenkins 后 Docker 停止工作
- python - Python 无法在 PowerShell 中工作以键入脚本
- r - R图形:如何使VennDiagram中的对象与cowplot plot_grid兼容?
- laravel - Laradock:Laravel 队列工作者无法连接到 RabbitMQ