无法获取 req.user 的属性
Cannot get properties of req.user
我正在使用 Passport 来验证我的项目。认证成功后,用户被定向到“/home”。此时,请求中有用户对象。但是,一旦我重定向,req.user.email 是未定义的。 :'(
exports.test= function (req, res) {
console.log(req.user);
console.log(req.user.id);
console.log(req.user.email);
}
终端显示:
ModelBase {
attributes:
{ id: 18,
first_name: 'test',
last_name: 'test',
email: 'test1@gmail.com',
password: '18fa9883b74578494b578048273e66d2edbf57b6',
active: 1,
created: Mon Oct 17 2016 08:15:58 GMT+0700 (SE Asia Standard Time),
modified: Thu Nov 17 2016 10:59:00 GMT+0700 (SE Asia Standard Time),
salt: '140996000870',
Balance: 0,
ExpireDate: Mon Apr 02 2018 00:00:00 GMT+0700 (SE Asia Standard Time),
used: 0,
donate: 1 },
_previousAttributes:
{ id: 18,
first_name: 'test',
last_name: 'test',
email: 'test1@gmail.com',
password: '18fa9883b74578494b578048273e66d2edbf57b6',
active: 1,
created: Mon Oct 17 2016 08:15:58 GMT+0700 (SE Asia Standard Time),
modified: Thu Nov 17 2016 10:59:00 GMT+0700 (SE Asia Standard Time),
salt: '140996000870',
Balance: 0,
ExpireDate: Mon Apr 02 2018 00:00:00 GMT+0700 (SE Asia Standard Time),
used: 0,
donate: 1 },
changed: {},
relations: {},
cid: 'c1',
id: 18,
_knex: null }
18
undefined
因为在 JSON 中被提取 email
不是顶级密钥。它在 attributes
键内。尝试 console.log(req.user.attributes.email);
.
使用"req.user.attributes.email"代替"req.user.email"
我有同样的问题,我想遍历用户对象的所有属性。
原来req.user对象不是普通对象,属性其实在req.user._doc
因此您可以像这样迭代属性:
Object.keys(req.user._doc).forEach(function(each_attribute){
console.log('each_attribute', each_attribute)
})
希望对您有所帮助。
我正在使用 Passport 来验证我的项目。认证成功后,用户被定向到“/home”。此时,请求中有用户对象。但是,一旦我重定向,req.user.email 是未定义的。 :'(
exports.test= function (req, res) {
console.log(req.user);
console.log(req.user.id);
console.log(req.user.email);
}
终端显示:
ModelBase {
attributes:
{ id: 18,
first_name: 'test',
last_name: 'test',
email: 'test1@gmail.com',
password: '18fa9883b74578494b578048273e66d2edbf57b6',
active: 1,
created: Mon Oct 17 2016 08:15:58 GMT+0700 (SE Asia Standard Time),
modified: Thu Nov 17 2016 10:59:00 GMT+0700 (SE Asia Standard Time),
salt: '140996000870',
Balance: 0,
ExpireDate: Mon Apr 02 2018 00:00:00 GMT+0700 (SE Asia Standard Time),
used: 0,
donate: 1 },
_previousAttributes:
{ id: 18,
first_name: 'test',
last_name: 'test',
email: 'test1@gmail.com',
password: '18fa9883b74578494b578048273e66d2edbf57b6',
active: 1,
created: Mon Oct 17 2016 08:15:58 GMT+0700 (SE Asia Standard Time),
modified: Thu Nov 17 2016 10:59:00 GMT+0700 (SE Asia Standard Time),
salt: '140996000870',
Balance: 0,
ExpireDate: Mon Apr 02 2018 00:00:00 GMT+0700 (SE Asia Standard Time),
used: 0,
donate: 1 },
changed: {},
relations: {},
cid: 'c1',
id: 18,
_knex: null }
18
undefined
因为在 JSON 中被提取 email
不是顶级密钥。它在 attributes
键内。尝试 console.log(req.user.attributes.email);
.
使用"req.user.attributes.email"代替"req.user.email"
我有同样的问题,我想遍历用户对象的所有属性。
原来req.user对象不是普通对象,属性其实在req.user._doc
因此您可以像这样迭代属性:
Object.keys(req.user._doc).forEach(function(each_attribute){
console.log('each_attribute', each_attribute)
})
希望对您有所帮助。