javascript - 通过输入动态访问字段
问题描述
我有一个如下所示的函数(this
指的是 MongoDB 文档实例):
saveResetToken() {
return new Promise((resolve, reject) => {
this.generateResetToken((err: Error, resetToken: string) => {
if (err) { reject(err) }
this.resetPasswordToken = resetToken
this.resetPasswordExpires = Date.now() + 3600000 // 1 hour
resolve(this.save())
})
})
generateResetToken
只返回一个生成的resetToken
.
我现在有另一种情况,我将使用基本相同的代码,除了我将访问this.resetPasswordToken
&以外的不同字段this.resetPasswordExpires
。
所以理想情况下,我想编写和重构现有的上述函数以使其可重用。最初的目的是能够通过输入指定将要设置的字段。
就像是:
saveResetToken(tokenField: string, tokenExpires: Date ) {
return new Promise((resolve, reject) => {
this.generateResetToken((err: Error, resetToken: string) => {
if (err) { reject(err) }
this.tokenField = resetToken
this.tokenExpires = Date.now() + 3600000 // 1 hour
resolve(this.save())
})
})
},
解决方案
经过一些测试后,我可以执行以下操作:
saveExpirableToken(tokenField: string, tokenExpiresField: string, tokenExpiresAt: Date): Promise<void> {
return new Promise((resolve, reject) => {
this.generateResetToken((err: Error, resetToken: string) => {
if (err) { reject(err) }
this[tokenField] = resetToken
this[tokenExpiresField] = tokenExpiresAt
resolve(this.save())
})
})
},
推荐阅读
- javascript - 一种或另一种类型的数组的流类型注释(但不是两者)
- javascript - 可点击的svg功能
- java - 如何在 Java Formatter 中转义减号?
- r - 如何在文本中获取带小数或破折号的数字?
- javascript - 我知道如何切换显示/隐藏 div onclick,但是如何为 onpress 做到这一点?
- android - android错误添加到播放商店
- c++ - c++循环快乐数cs101.1x
- sql-server - SQL Server:更新以仅匹配和替换确切的单词
- swift - 在 Kotlin 中组织扩展
- c# - NSwag 将原始字段生成为 Nullable