Node.js api JSON值未定义

Node.js api JSON值未定义,node.js,json,api,lodash,Node.js,Json,Api,Lodash,我想从笑话API中获取笑话 代码正在成功地向API发出请求 它正在返回一个响应 但是,当我试图在控制台中记录“amount”的值时,它会打印未定义的值 我用的是洛达斯 库从JSON对象获取值,但它将值显示为未定义 const express = require('express') let request = require('request'); var _ = require('lodash'); let category = "Any"; let amount = 2;

我想从笑话API中获取笑话

代码正在成功地向API发出请求 它正在返回一个响应

但是,当我试图在控制台中记录“amount”的值时,它会打印未定义的值

我用的是洛达斯 库从JSON对象获取值,但它将值显示为未定义

const express = require('express')
let request = require('request');
var _ = require('lodash');
let category = "Any";
let amount = 2;
let jokeType = 'single';

//URL for joke api
let url = `https://v2.jokeapi.dev/joke/Any?type=${jokeType}&amount=${amount}`;
const app = express()
app.get('/', function (req, res) {
   request(url,function(err,response,body){
   if(err){
       console.log('error:',error);
    }else{
       //console.log('body:',body);
       var jBody = body;
       console.log(_.get(jBody,'amount'));
    }
  });
})
app.listen(8083)

body object gives value as below 

{
"error": false,
"amount": 2,
"jokes": [
    {
        "category": "Programming",
        "type": "single",
        "joke": "Hey Girl roses are red"
        "flags": {
            "religious": false,
            "political": false,

            "racist": false,
            "sexist": false,
            "explicit": false
        },
        "id": 41,
        "safe": true,
        "lang": "en"
    },
    {
        "category": "Programming",
        "type": "single",
        "joke": "Two SQL tables sit at the bar. A query approaches and asks \"Can I 
                 join you?\"",
        "flags": {
            "religious": false,
            "political": false,
            "racist": false,
            "sexist": false,
            "explicit": false
        },
        "id": 221,
        "safe": true,
        "lang": "en"
    }
  ]
}

首先,检查body是一个对象
console.log('Type of body is:',typeof(body))
我认为它是一个字符串(json格式),所以你需要使用
body=json.parse(body)
来解析它,然后使用
body.amount
来获得你不需要lodash的金额,简单地使用
body.amount
谢谢它的工作