#typescript #nestjs #typeorm
Вопрос:
Из приведенного ниже кода видно, что TypeORM изменяет значение, переданное в метод создания (код ниже). Каким было бы лучшее/наиболее эффективное решение для передачи значения в метод создания без его изменения? Является ли JSON stringify, а затем анализ JSON, или это слишком дорогостоящая операция?
Такое поведение никогда раньше не было проблемой, но оно возникло, когда я тестировал компонент. Я написал тест, ожидая, что createUserDto не будет соответствовать возвращаемой сущности пользователя, но тест не удался, так как они одинаковы.
async createUser(createUserDto: CreateUserDto) => {
console.log(createUserDto) // { email: 'joe', password: '123456' }
const user = await userRepository.create(createUserDto)
const salt = ....
const hash = ....
user.password = hash
console.log(createUserDto) // { email: 'joe', password: 'hashed pw' }
console.log(user) // { email: 'joe', password: 'hashed pw' }
Object.is(createUserDto, user) // true
return await userRepository.save(user)
}
Комментарии:
1. передача
Object.assign({}, createUserDto)
должна быть исправлена в этом случае, потому что в ней нет вложенного объектаcreateUserDto
. Я думаю, вам придется написать «глубокую» версиюObject.assign
, если вы не хотите использовать какую-либо библиотеку