问题记录:访问创建者的ID来获取位置时出现Cannot read properties of undefined (reading ‘uid‘)问题

问题:TypeError: Cannot read properties of undefined (reading 'uid') 指出在 places-routes.js 文件的第 30 行,尝试从一个未定义的对象上读取 uid 属性时发生了错误。这通常发生在尝试访问 req.params.uid 但是 req 对象未被正确传递或尚未定义。

解决办法:

完整代码:

const express = require('express');

const router = express.Router();

const DUMMY_PLACES = [
    {
        id: 'p1',
        title: 'Empire State Building',
        description: {
            lat: 40.7484474,
            lng: -73.9871516
        },
        address: '20 W 34th St, New York, NY 10001',
        creator: 'u1'
    }
    // 可能还有其他虚拟位置对象...
];

router.get('/:pid', (req, res, next) => {
    const placeId = req.params.pid;

    const place = DUMMY_PLACES.find(p => p.id === placeId);

    res.json({ place });
});

// 修正了这里的参数名称:将 rea 更正为 req
router.get('/user/:uid', (req, res, next) => { 
    const userId = req.params.uid;

    const place = DUMMY_PLACES.find(p => p.creator === userId);

    // 这里假设我们找到了一个位置,实际情况可能需要处理未找到情况
    if (place) {
        res.json({ place });
    } else {
        // 如果没有找到相应的 place,可以发送一个 404 响应
        res.status(404).json({ message: 'Place not found' });
    }
});

module.exports = router;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值