首页 > 解决方案 > 无法从 Github API 检索信息。JSON.parse() 在此代码中不起作用

问题描述

尝试借助此 API 检索任何 Github 配置文件的信息:

Github API - https://api.github.com/users/ {任何 Github 帐户的用户名}

const express = require("express");
const app = express();
const https = require("https");
const bodyParser = require("body-parser");
const request = require("request");
app.listen(3000 , function(){
  console.log("Server started at port 3000");
});

app.use(express.static("public"));
app.use(bodyParser.urlencoded({extended:true}));
app.get("/" , function(req , res){
   res.sendFile(__dirname +"/index.html" );
});
app.post("/" , function(req , res){
   const user = req.body.username;
   const url = "https://api.github.com/users/"+user ;
   https.get(url , function(response){
     response.on("data", function(data){
       const temp = JSON.parse(data);
       const bravo = temp.login;
       res.write("<p>The login of this Github ID is " + bravo + "<p>" );

      });
     });
     console.log("Post request received.");
   });

在我的 CLI 中出现错误,在位置 2 处说明用户代理错误和 JSON 中的意外令牌 R

标签: node.jsapigithub

解决方案


如果您调用的 uri 中有空格或其他无效字符,您的请求目标将不会以 json 格式返回。

调用“testme”作为您的 bravo 变量呈现 json,但“testme please”返回 html。

我认为,如果您在尝试将数据解析为 json 之前记录数据,您会发现您正在使用 html。


推荐阅读