loopbackio / loopbackio/loopback-datasource-juggler

v3.31.0 introduces bug

Abierto
#1,754 10 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug help wanted major regression
Lenguaje dominante
JavaScript
Estrellas
282
Forks
366
Merge medio
17 h 4 min
PR fusionados (30 d)
10

Descripción

The following code works fine in v3.30.0:

const query = {
    where: {
        or: [
            { username: username },
            { email: username }
        ]
    }
};
self.userModel.findOne(query, function (err, user) {

As of v.3.31.0, I get the following error:

Error: The where clause "abc@xyz.com" is not an object
    at Function.ModelUtils._coerce (C:\apps\flexit\node_modules\loopback-datasource-juggler\lib\model-utils.js:369:11)
    at Function.ModelUtils._coerce (C:\apps\flexit\node_modules\loopback-datasource-juggler\lib\model-utils.js:552:20)
    at Function.ModelUtils._coerce (C:\apps\flexit\node_modules\loopback-datasource-juggler\lib\model-utils.js:394:14)
    at Function.ModelUtils._normalize (C:\apps\flexit\node_modules\loopback-datasource-juggler\lib\model-utils.js:177:8)
    at Function.find (C:\apps\flexit\node_modules\loopback-datasource-juggler\lib\dao.js:1529:10)
    at Function.findOne (C:\apps\flexit\node_modules\loopback-datasource-juggler\lib\dao.js:1782:8)
    at Strategy._verify (C:\apps\flexit\server\boot\authentication.js:288:36)
    at Strategy.authenticate (C:\apps\flexit\node_modules\passport-local\lib\strategy.js:90:12)
    at attempt (C:\apps\flexit\node_modules\passport\lib\middleware\authenticate.js:361:16)
    at authenticate (C:\apps\flexit\node_modules\passport\lib\middleware\authenticate.js:362:7)

Looks like something broke in the _coerce function.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza en lib/model-utils.js, en las llamadas a _coerce alrededor de las líneas 369, 394 y 552, y luego sigue la normalización desde lib/model-utils.js hasta findOne en lib/dao.js. Reproduce lo proporcionado o la consulta en v3.31.0 y compárala con v3.30.0. Se considera terminado cuando la consulta acepta la misma forma de objeto sin informar del valor de email como no objeto.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript
Área
database
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.