Предположим, следующая пользовательская схема в MongoDB (с использованием Mongoose / Nodejs):
var UserSchema = new Schema({
email: {
type: String,
unique: true,
required: 'User email is required.'
},
password: {
type: String,
required: 'User password is required.'
},
token: {
type: String,
unique: true,
default: hat
},
created_at: {
type: Date,
default: Date.now
},
});
// mongoose-encrypt package
UserSchema.plugin(encrypt, {
secret: 'my secret',
encryptedFields: ['email', 'password', 'token', 'created_at']
});
Теперь предположим, что я хочу вернуть пользовательский объект из конечной точки API.На самом деле, предположим, что я хочу вернуть пользовательские объекты из нескольких конечных точек API.Возможно, как отдельный объект, возможно, как связанная модель.
Очевидно, я не хочу, чтобы password
присутствовал в возвращаемой структуре - и во многих случаях я не хотел бы, чтобы token
былвернулся либо.Я мог бы сделать это вручную на каждой конечной точке, но я бы предпочел не продуманное решение - возможность просто получить пользователя, конец истории, и не беспокоиться о сбросе определенных значений после факта.
Я в основном из мира Laravel, где существуют такие вещи, как API Resources (https://laravel.com/docs/5.6/eloquent-resources). Я уже пытался реализовать пакет mongoose-hidden
(https://www.npmjs.com/package/mongoose-hidden), чтобы скрыть пароль и токен, но, к сожалению, кажется, что это нарушает используемый мной пакет шифрования.
Я новичок в Nodejs и MongoDB в целом - есть ли хороший способ реализовать это?