Всякий раз, когда в бэкэнд поступает запрос на получение пользователя, я возвращаю этого пользователя с хешированным паролем.
{
"_id": "5e4e3e7eecd9a53c185117d4",
"username": "rick",
"email": "rick@gmail.com",
"password": "$2b$10$/eD8g4jCw6Bx0.FNxFDADO5tc70AvUmK0H/7R/0JTyo2q9PcGAdOO",
"createdAt": "2020-02-20T08:08:30.878Z",
"updatedAt": "2020-02-20T08:08:30.878Z",
"__v": 0
}
Модель пользователя
const userSchema = new Schema({
username: { type: String, required: true },
email: { type: String, required: true },
password: { type: String, required: true },
posts: [{
type: mongoose.Schema.Types.ObjectId,
ref: "Post"
}]
}, { timestamps: true })
listUser route
listUsers: (req, res) => {
User.find{}, (err, users) => {
if (err) {
return res.status(500).json({ error: "Server error occurred" })
} else if (!users) {
return res.status(400).json({ error: "No users found" })
} else if (users) {
return res.status(200).json({ users: users })
}
})
}
Несмотря на то, что я объявил поле пароля в схеме пользователя, есть ли способ вернуть объект ответа без поля пароля? Я попробовал опцию selected: false
в поле password
в модели User, она работала, но когда я не смог войти в свое приложение. Должен быть какой-то другой путь.