解构对象时出现意外结果
Unexpected result when destructuring object
对于 Express 项目,我正在使用 Github API 在我的应用程序中实现 OAuth。我有一个 _json
对象,像这样返回;
{
login: "basvandriel",
id: 5286260,
email: "contact@basvandriel.nl"
}
当然,这个对象里面有更多的数据,但是我为了这个例子减少了它。
为了访问数据,我可以执行 _json.email
或任何其他对象键,这 returns 数据是正确的。然而,问题是,当尝试通过尝试以下代码来破坏对象时,它 returns undefined
.
passport.use(new GithubStrategy({
clientID: GITHUB_CLIENT_ID,
clientSecret: GITHUB_CLIENT_SECRET,
callbackURL: "http://localhost:4000/auth/github/callback"
},
async function(request, accessToken, refreshToken, profile, done) {
const {
id,
username,
email
} = profile._json;
console.log(email) //undefined
console.log(profile._json.email) // not undefined
// ...
}));
这来自使用 passport-github2
包。我尝试用 Object(_json)
包装 _json
对象,但也没有成功。
为了快速修复,我只是这样做
const email = profile._json.email;
为什么这不起作用?有什么我想念的吗?
你能试试这样做吗:
const {
id: id,
username: username,
email: email
} = profile._json;
对于 Express 项目,我正在使用 Github API 在我的应用程序中实现 OAuth。我有一个 _json
对象,像这样返回;
{
login: "basvandriel",
id: 5286260,
email: "contact@basvandriel.nl"
}
当然,这个对象里面有更多的数据,但是我为了这个例子减少了它。
为了访问数据,我可以执行 _json.email
或任何其他对象键,这 returns 数据是正确的。然而,问题是,当尝试通过尝试以下代码来破坏对象时,它 returns undefined
.
passport.use(new GithubStrategy({
clientID: GITHUB_CLIENT_ID,
clientSecret: GITHUB_CLIENT_SECRET,
callbackURL: "http://localhost:4000/auth/github/callback"
},
async function(request, accessToken, refreshToken, profile, done) {
const {
id,
username,
email
} = profile._json;
console.log(email) //undefined
console.log(profile._json.email) // not undefined
// ...
}));
这来自使用 passport-github2
包。我尝试用 Object(_json)
包装 _json
对象,但也没有成功。
为了快速修复,我只是这样做
const email = profile._json.email;
为什么这不起作用?有什么我想念的吗?
你能试试这样做吗:
const {
id: id,
username: username,
email: email
} = profile._json;