问题: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;