Не удается получить доступ к свойству объекта ответа мангуста

#node.js #mongodb #express #mongoose

Вопрос:

Когда я пытаюсь получить доступ к объекту ответа от мангуста, он ничего не возвращает. Ниже приведен мой код

 //app.ts
import { User } from './Models/User';
router.get('/reset/:token', async (req, res) => {
    const user = await User.findOne({ _id: '60a12460479e874db836d939' }).lean()
   
    console.log(user)//returns an object with email property
    console.log(user.email) //returns undefined
    return res.json({
        user,
    })
})
 

В то время как это прекрасно работает

 //app.ts
import { User } from '../Models/User';

router.get('/reset/:token', async (req, res) => {
        const user = await User.findOne({ _id: '60a12460479e874db836d939' }, (err: any, user: any) => {
            if (err) { console.log(err); }
            console.log(user.email)//returns email
        })
        return res.json({
            user,
        })
    })
 

Я пытался исследовать эту проблему. Большинство из них, похоже, указывают на схему. Но моя схема, кажется, в порядке.

Ниже приведена моя схема

 //Models/User.ts

    import mongoose from 'mongoose'
    const UserSchema = new mongoose.Schema({
        username: {
            type: String,
            required: true,
            unique: true
        },
        email: {
            type: String,
            required: true,
            unique: true
        },
        password: {
            type: String,
            required: true,
        },
        isAdmin: {
            type: Boolean,
            default: false
        },
        resetPasswordToken: String,
        resetPasswordExpires: Date
    })
    
    export const User = mongoose.model('User', UserSchema);
 

Пожалуйста, посоветуйте.
Спасибо.

Комментарии:

1. Вы пробовали это без lean() метода?

2. Не работает также , пользователь возвращает объект, но пользователь.email возвращает неопределенный