Estoy tratando de crear un método en mi archivo de servicio de credenciales que necesita acceder al método desde otra clase llamada CredentialsDao así:
disableOneTimeCredentials() { const emailAndOneTimeToken = CredentialsDao.findOneTimeTokenCredentialsByEmail() }Esto es lo que está generando ese error:
El archivo dao de credenciales se ve así:
export class CredentialsDao { constructor() { this.findOneTimeTokenCredentialsByEmail = this.findOneTimeTokenCredentialsByEmail.bind(this) } async findOneTimeTokenCredentialsByEmail(email: string): Promise<ICredential> { return this.Model.findOne({ email: email, credentialType: CredentialType.oneTimeToken, $or: [ { disabledOn: null }, // { // disabledOn: { // $exists: false // hangs or return nothing... why? // } // }, { disabledOn: { $exists: true, $ne: null, $gt: new Date() } } ] }) } }Y sí, importé el archivo.
Está intentando acceder a los miembros estáticos .
CredentialsDao.findOneTimeTokenCredentialsByEmail(); pero el método no está marcado como static
async findOneTimeTokenCredentialsByEmail(email: string): Promise<ICredential> // static modifier static async findOneTimeTokenCredentialsByEmail(email: string): Promise<ICredential> No crea que podrá usar this y hacer referencia a propiedades no estáticas dentro del método static .
Tal vez un descuido, pero funcionará si crea una nueva instancia:
const service = new CredentialsDao(); service.findOneTimeTokenCredentialsByEmail('vader@ds.com');