首页 > 解决方案 > 无法从 api 获取

问题描述

const express = require("express");
const bodyParser = require("body-parser");
const request = require("request");

const app = express();

app.use(bodyParser.urlencoded({extended : true}));

app.listen(3000,function(){
    console.log("server is running");
})

app.get("/",function(req,res){
    res.sendFile(__dirname + "/index.html");
})

app.post("/",function(req,res){
    var url = "https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/calendarByPin?";
    var pincode = req.body.pinCode;
    url = url + "pincode=" + pincode;
    var date = req.body.date;
    url = url + "&date=" + date;
    console.log(pincode,date);
    
    request(url,function(err,res1,body){
        res.send(body.centers);
    })
})

对于上面的代码(未定义)值被发送res.send(body.centers)

正文为 json 格式,如下所示:

{"centers":[{"center_id":596215,"name":"MISSION UHC","address":"MISSION NADIAD","state_name":"Gujarat","district_name":"Kheda","block_name":"Nadiad","pincode":387002,"lat":22,"long":72,"from":"09:00:00","to":"18:00:00","fee_type":"Free"}

标签: node.jsarraysapiexpress

解决方案


试着看看身体的样子

request(url,function(err,res1,body) {
  console.log(body);
})

如果终端中的正文输出带有双引号,例如: { "key": "value" } 这意味着正文是 JSON 字符串,您需要将其解析为对象:

body = JSON.parse(body)

然后发送它:

res.send(body.centers)

推荐阅读