Я создал UserSchema
и добавил метод, в котором я пытаюсь установить его свойство name
:
import mongoose, { Schema } from 'mongoose'
const UserSchema = new Schema({
name: String
})
UserSchema.methods.setName = (name) => {
this.name = name + '123'
}
exports default mongoose.model('User', UserSchema)
Я импортировал объект и вызвал метод из созданного мной контроллера:
import User from './User'
exports.signup = (request, response) => {
const name = 'Ignas'
const UserModel = new User
UserModel.setName(name)
...
}
По какой-то причине мне выдается ошибка:
TypeError: Невозможно установить свойство "name" из неопределенного
Как могло this
бытьundefined?
Если я изменю метод, передавая объект, я мог бы заставить его работать так, как я хочу, но он выглядит грязным и неправильным, поскольку все, что я хочу сделать, - это изменить свойство объекта с помощью его метода..
// modified method of Schema
UserSchema.methods.setName = (User, name) => {
User.name = name + '123'
}
// modified call from the controller
UserModel.setName(name)