Я хотел бы использовать метод, который я создал с помощью mongoose, в моем компоненте реагирования (распечатать полное имя пользователя).Это возможно?Я пытался использовать .virtual и .methods, но, похоже, они не были переданы в ответ моего API.
Реагирующий компонент:
render() {
const { user } = this.props.auth;
return (
<div>{user.fullName()}</div>
);
}
Модель пользователя:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Create Schema
const UserSchema = new Schema({
username: {
type: String,
required: true,
unique: true
},
password: {
type: String,
required: true
},
registerDate: {
type: Date,
default: Date.now
},
profile: {
firstName: {
type: String,
required: true
},
lastName: {
type: String
},
nickname: {
type: String
}
}
});
UserSchema.virtual('fullName').get(function() {
return this.profile.firstName + (' ' + this.profile.lastName) || '';
});
module.exports = User = mongoose.model('user', UserSchema);
API:
router.get('/user', auth, (req, res) => {
User.findById(req.user.id)
.select('-password')
.then(user => res.json(user));
});