解构对象时出现意外结果

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;