#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 возвращает неопределенный