node.js - Express/Node.js 后端点显示 [object Object] 而不是 Array of Objects
问题描述
我在前端使用 Angular 并向使用 Express 构建的后端发送一个发布请求。
这是 Angular 代码的外观:
addEntry() {
let type = "Random Type";
let location = "Random Location";
let date = new Date();
let results = [
{ name: "my first name", age: 23 },
{ name: "new second name", age: 35 },
];
return this.http.post<{ message: string }>(
this._url + "/myendpoint/add",
{ type, location, date, results }
);
}
这就是 express 代码的样子:
router.post(
"/add",
middleware.verifyToken,
async function (req, res) {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json(errors.array());
}
try {
let userID = req.tokenData.userID;
let user = await User.findOne({ _id: userID });
if (user === null || user.length <= 0) {
return res.status(422).json("Could not add entry");
} else {
let type = req.body.type;
let location = req.body.location;
let date = req.body.date;
console.log(req.body);
let results = req.body.results.map(async (el) => {
let result = await Entry.findOne({ name: el.name });
return {
name: result.name,
age: el.age,
};
});
[some more code ...]
}
} catch (err) {
console.log(err);
return res.status(422).json(err);
}
}
);
控制台日志输出:
{
type: 'Random Type',
centre: 'Random Location',
date: '2020-06-19T16:50:25.357Z',
results: '[object Object]'
}
而且我也收到了这个错误,它可能是因为结果显示为“[object Object]”而产生的;
TypeError: req.body.results.map is not a function
如何在 Express 中而不是“[object Object]”中获取结果数组?我在 Express 中启用了以下设置:
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
解决方案
我的声誉较低,所以我无法发表评论,您尝试过 results[1]['name']; ?
推荐阅读
- python - Tkinter 帧大小定义为父帧大小的一部分
- javascript - JS 对象、Python 字典和 C++ 结构之间有什么区别?
- java - 可以在 solr 中执行不带字段名的部分搜索
- python - 如何创建数据框并使用数组和 for 循环调用它们?
- javascript - 如何从Javascript中的数组中获取元素的随机组合?
- c# - Winforms OnFormClosing 和 Disposing/Close
- python - 将零移到最后:在 CodeWars 中未通过测试?
- r - 尝试抓取表格给了我未能加载 HTML 表格的错误
- r - 如何反转由另一列分组的数据框中的一列中的值的顺序?
- python - 获取 html 中的所有链接,包括条件注释中的链接