Sequelize nicht akzeptieren gilt moment.js Objekt in where-Klausel

Habe ich Folgendes sequelize-Abfrage:

let prms = periods.map((period, index, arr) => {
    if (arr[index + 1]) {
        return sequelize.models.Result.aggregate('value', 'avg', {
            where: {
                createdAt: {
                    $lt: arr[index + 1],
                    $gt: period
                },
                type: hook.params.headers.type,
                entityId: hook.params.headers.entity
            }
        }).catch(err => console.log('err'));
    }
})

Nun, die createdAt – Eigenschaft auf das Objekt, wo mir dieses problem:

Fehler: – Fehler: Ungültiger Wert 1506211200000
am Objekt.escape (C:\Users\George\Source\Repos\myProj\node_modules\sequelize\lib\sql-string.js:50:11)
am Objekt.Flucht (C:\Users\George\Source\Repos\myProj\node_modules\sequelize\lib\dialects\abstract\query-generator.js:917:22)

Nun habe ich keine Ahnung, wo die 1506211200000 Zahl kommt, beide arr[index + 1] und period sind moment.js Objekte, und ich kann dies überprüfen, indem Sie tun console.log(arr[index + 1].isValid(), period.isValid()); die Drucke true true. Wenn entfernen Sie die createdAt-Beschränkung, es ist kein Problem.

Eine Idee, was ist hier Los?

NB: ich bin mit Postgres



One Reply
  1. 3

    Müssen Sie konvertieren moment Objekt Date Objekt mit moment#toDate Methode, um es in sequelize-Abfrage:

    ...
    createdAt: {
      $lt: arr[index + 1].toDate(),
      $gt: period.toDate()
    },

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.