循环遍历req.body个元素,只有1个元素时跳转到字符串
Loop through req.body element, jumps into string when its only 1 Element
我的 req.body.email
有问题。
只要有最少2个emails
我的obj就是这样打印出来的:
{
users: [
{ email: 'sadda@gmail.com', role: 'read' },
{ email: 'dsads@web.de', role: 'Admin' }
]
}
所以这里的一切都是正确的。但是只要我只有 1 email
它就会遍历各个字母,使 obj 看起来像这样:
{
users: [
{ email: 't', role: 'read' },
{ email: 'e', role: 'read' },
{ email: 's', role: 'read' },
{ email: 't', role: 'read' }
]
}
这是我的代码:
router.post('/test/:proID', async (req, res) => {
const projectID = parseInt(req.params['proID'], 10) || 0;
var obj = {};
obj.users = [];
for (let i = 0; i < req.body.email.length; i++) {
obj.users[i] = { email: req.body.email[i], role: req.body.right[i]
};
console.log(req.body.email.length);
console.log(req.body.email);
console.log(obj);
我该如何解决这个问题?此外,当我只有 1 封电子邮件时,我的 req.body.email.length
显示字母数,而不是对象的长度。
所以我假设当只有 1 封电子邮件时,它只是一个字符串,如果多个我的 req.body.email
是一个对象?
我怎样才能有效地处理这个问题?
您的响应正文中 email
字段的类型似乎取决于地址的数量。如果只有一个地址,则为string
,如果有多个地址,则为Array
。如果您不能将 API 更改为始终 return 和 Array
,您可以检查客户端上的数据类型:
if (Array.isArray(req.body.email)) {
// ...
}
else {
// ...
}
我的 req.body.email
有问题。
只要有最少2个emails
我的obj就是这样打印出来的:
{
users: [
{ email: 'sadda@gmail.com', role: 'read' },
{ email: 'dsads@web.de', role: 'Admin' }
]
}
所以这里的一切都是正确的。但是只要我只有 1 email
它就会遍历各个字母,使 obj 看起来像这样:
{
users: [
{ email: 't', role: 'read' },
{ email: 'e', role: 'read' },
{ email: 's', role: 'read' },
{ email: 't', role: 'read' }
]
}
这是我的代码:
router.post('/test/:proID', async (req, res) => {
const projectID = parseInt(req.params['proID'], 10) || 0;
var obj = {};
obj.users = [];
for (let i = 0; i < req.body.email.length; i++) {
obj.users[i] = { email: req.body.email[i], role: req.body.right[i]
};
console.log(req.body.email.length);
console.log(req.body.email);
console.log(obj);
我该如何解决这个问题?此外,当我只有 1 封电子邮件时,我的 req.body.email.length
显示字母数,而不是对象的长度。
所以我假设当只有 1 封电子邮件时,它只是一个字符串,如果多个我的 req.body.email
是一个对象?
我怎样才能有效地处理这个问题?
您的响应正文中 email
字段的类型似乎取决于地址的数量。如果只有一个地址,则为string
,如果有多个地址,则为Array
。如果您不能将 API 更改为始终 return 和 Array
,您可以检查客户端上的数据类型:
if (Array.isArray(req.body.email)) {
// ...
}
else {
// ...
}