【发布时间】:2021-12-30 18:01:24
【问题描述】:
尝试使用来自import Hash from '@ioc:Adonis/Core/Hash' 的Hash.make(user.password) 加密用户密码
当代码尝试执行存在于@beforesave 中的Hash.make 时,就会出现问题,它给了我一个referenceError。
message:'Hash is not defined'
stack:'ReferenceError: Hash is not defined\n at eval (eval at hashPassword (/usr/src/app/Models/User.ts:35:9), <anonymous>:2:28)
这是用户模型。
import { DateTime } from 'luxon'
import Hash from '@ioc:Adonis/Core/Hash'
import { column, beforeSave, BaseModel } from '@ioc:Adonis/Lucid/Orm'
import Logger from '@ioc:Adonis/Core/Logger'
export default class User extends BaseModel {
@column({ isPrimary: true })
public id: number
@column()
public email: string
@column({ columnName: 'first_name' })
public firstName: string
@column({ columnName: 'last_name' })
public lastName: string
@column({ serializeAs: null })
public password: string
@column()
public rememberMeToken?: string
@column.dateTime({ autoCreate: true })
public createdAt: DateTime
@column.dateTime({ autoCreate: true, autoUpdate: true })
public updatedAt: DateTime
@beforeSave()
public static async hashPassword(user: User) {
if (user.$dirty.password) {
try {
user.password = await Hash.make(user.password)
}
catch (error) {
Logger.error(error)
}
}
}
}
当调试步骤进入属于哈希依赖项的正确路径时,我认为它在哈希驱动程序中失败了
【问题讨论】:
-
如果您有解决方案然后发布答案,请勿编辑您的帖子。请阅读How to Ask 和How to Answer。不要在帖子标题中添加 SOLVED 而是在 2 天内标记您的答案
-
感谢您的指导。 “在 2 天内标记你的答案”是什么意思?
-
允许通过单击答案左侧的勾号将答案标记为正确,有关更多信息,请查看tour。
-
很高兴知道,tks!
标签: node.js typescript adonis.js adonisjs-ace lucid