首页 > 解决方案 > 为什么我在尝试访问获取请求后返回的对象时未定义?

问题描述

所以,我目前在我的第一个 node.js 项目上工作,在那里我创建了一个 api。我想创建一个端点,我想在 GET 请求方法中提供 3 个参数:“base”、“target”和“amount”,在从 mongoDb 检索数据和适当的计算后,我希望响应返回以目标货币给出的给定金额!问题是要访问我得到未定义的比率!

我的这个端点的代码是:

router.get('/convert', async(req,res)=>{

    let base = req.body.base;
    let target = req.body.target;
    let amount = req.body.amount;


    const getRatios = await Ratios.findOne({base: base});
    if(!getRatios) return res.status(400).send('No such a currency found');

    try{            
        res.send(getRatios.ratios.target);        
    }

    catch(err){

        console.log('something bad happened');
        console.log(getRatios.ratios);
    }

})

达到存储比率值的唯一方法是在我硬编码我想要访问的所需“目标”之后在控制台中!例如console.log(getRatios.ratios.target)返回 undefined 但console.log(getRatios.ratios.AUD)返回 AUD 的汇率

这仅适用于控制台,但是当我尝试获得响应时: res.send(getRatios.ratios.target)res.send(getRatios.ratios.AUD)什么都不返回!

工作res.send(getRatios.ratios)正常并返回:

{
    "EUR": 0.82110323,
    "AUD": 1.2923873,
    "JPY": 109.49154,
    "USD": 1,
    "CHF": 0.89690769
}

但是我想访问对象的值!

标签: javascriptnode.jsexpressobjectundefined

解决方案


推荐阅读