无法访问猫鼬响应对象属性

时间:2021-05-17 14:30:01

标签: node.js mongodb express mongoose

当我尝试从 mongoose 访问响应 obj 时,它不返回任何内容。以下是我的代码

//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);

请指教。 谢谢。

0 个答案:

没有答案