【问题标题】:unable to fetch from api无法从 api 获取
【发布时间】:2021-08-17 09:02:18
【问题描述】:
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"}

【问题讨论】:

  • 准确地说:body 是 JSON 字符串还是 JavaScript 对象?
  • 我猜body 是一个字符串而不是一个对象。试试body = JSON.parse(body)

标签: node.js arrays api express


【解决方案1】:

试着看看身体的样子

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

如果终端中的正文输出带有双引号,例如: { “核心价值” } 这意味着 body 是 JSON 字符串,您需要将其解析为对象:

body = JSON.parse(body)

然后发送:

res.send(body.centers)

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 2018-12-09
    • 2014-04-27
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多