【发布时间】:2020-08-12 04:22:35
【问题描述】:
所以我想显示用户在登录时拥有的所有组。但我只得到 1 个值。我还是个使用 node js 的新手
这里是代码:
var data = { id: user.id_panel_users, username: user.username, role: user.role, groups: user.groups }
var [group] = await modelGroup.getUserGroup(data.id)
for(let i=0;i<group.length;i++){
data.groups = group[i].group_name;
}
console.log(group, data.groups)
// data.toString();
console.log("serialize user: ", data)
done(null, data);
结果如下:
[
TextRow { group_name: 'add_url_premium' },
TextRow { group_name: 'add_url_regular' }
] add_url_regular
serialize user: {
id: 77,
username: '082122735123',
role: 2,
groups: 'add_url_regular'
}
【问题讨论】:
-
data.groups 是什么数据结构?如果是数组,你应该往里面推值,它应该可以工作。
-
@LuckyLuke data.groups 是数据对象的一个属性。它是 passport.serializeUser 中的一个对象,用于显示用户的所有数据
-
当您调用
await modelGroup.getUserGroup(data.id)时,它是返回一个数组数组,还是只返回一个数组?当您使用var [group] = ...时,您希望右侧返回一个包含单个值的数组,并将该值分配给group变量。这可能是问题的另一个根源。 -
@BillyBrown [ TextRow { group_name: 'add_url_premium' }, TextRow { group_name: 'add_url_regular' } ] 这个是 var [group] = await ...
标签: javascript arrays node.js object