req.user 是一个列表,我必须做 req.user[0].prop 来获取数据。为什么会这样?
req.user is a list, I have to do req.user[0].prop to get data. Why is this happening?
之前我可以做 req.user.property
来获取数据,但突然失败了,我必须做 req.user[0].property
来获取数据。
本质上req.user是一个列表。看起来像这样...
user:
[ { _id: '934715373258035',
active: true,
date: 'July 1st 2015, 1:44:49 am',
email: 'username@emailprovider.com',
genre: '53d8fcd1ea70ad64d6655fa8',
location: '53d8ff38ea70ad64d6655fbb',
name: 'First Last',
pass: 'QAt9tSGDpft7iSxwoa5gsTO63ONXshREQmkE8F6MKqRA6IIn2Eo49Z5vZFqKushX' } ],
为什么会这样,是什么原因造成的?这是正常的吗?好像不在我的研究范围内。
听起来 req.user.property
已经从对象字面量变成了数组。在对象字面量中,您可以按名称访问 属性。
var objectLiteral = {name: 'foo'};
objectLiteral.name === 'foo' // true
在数组中,您必须通过索引访问成员。
var arrayOfObjectLiterals = [{name: 'foo'}, {name: 'bar'}]
arrayOfObjectLiterals[0].name === 'foo' // true
如我所见,当前您拥有实体(用户)数组,因此您无法访问您的属性 req.user.propertie
。
为了获得一些道具。数组,您需要 select 此数组的特定项目,然后需要访问 属性.
问题可能与以下事实有关:之前您收到的是 jason 对象,现在是 json 个对象的数组。
例子
数组:var objects = [obj1][obj2][obj3];
要select特定项目,您需要按索引访问它:objects[0] //obj1
然后您可以访问 'obj1' 的属性:objects[0].someProp
为了强制 req.user 成为对象(而不是列表中的对象),我将 passport.deserializeUser
函数更改为 运行 命令 db.users.findOne()
db.users.find()
.
这 return 只是第一个结果,并允许 req.user 等于一个对象而不是包含该对象的列表。
仍然不确定最初是什么导致它变成一个列表,因为它应该仍然只有 return 个结果...
之前我可以做 req.user.property
来获取数据,但突然失败了,我必须做 req.user[0].property
来获取数据。
本质上req.user是一个列表。看起来像这样...
user:
[ { _id: '934715373258035',
active: true,
date: 'July 1st 2015, 1:44:49 am',
email: 'username@emailprovider.com',
genre: '53d8fcd1ea70ad64d6655fa8',
location: '53d8ff38ea70ad64d6655fbb',
name: 'First Last',
pass: 'QAt9tSGDpft7iSxwoa5gsTO63ONXshREQmkE8F6MKqRA6IIn2Eo49Z5vZFqKushX' } ],
为什么会这样,是什么原因造成的?这是正常的吗?好像不在我的研究范围内。
听起来 req.user.property
已经从对象字面量变成了数组。在对象字面量中,您可以按名称访问 属性。
var objectLiteral = {name: 'foo'};
objectLiteral.name === 'foo' // true
在数组中,您必须通过索引访问成员。
var arrayOfObjectLiterals = [{name: 'foo'}, {name: 'bar'}]
arrayOfObjectLiterals[0].name === 'foo' // true
如我所见,当前您拥有实体(用户)数组,因此您无法访问您的属性 req.user.propertie
。
为了获得一些道具。数组,您需要 select 此数组的特定项目,然后需要访问 属性.
问题可能与以下事实有关:之前您收到的是 jason 对象,现在是 json 个对象的数组。
例子
数组:var objects = [obj1][obj2][obj3];
要select特定项目,您需要按索引访问它:objects[0] //obj1
然后您可以访问 'obj1' 的属性:objects[0].someProp
为了强制 req.user 成为对象(而不是列表中的对象),我将 passport.deserializeUser
函数更改为 运行 命令 db.users.findOne()
db.users.find()
.
这 return 只是第一个结果,并允许 req.user 等于一个对象而不是包含该对象的列表。
仍然不确定最初是什么导致它变成一个列表,因为它应该仍然只有 return 个结果...