2017-11-10 1 views
0

Ich benutze Sequelize, um Daten aus einer Legacy-MySQL-Datenbank abrufen. Eine der Spalten in der Tabelle ist ein Blob, also gibt sequelize einen Puffer zurück.Sequelize Return Blob als Text

Ist es möglich, den Blob mit Sequelize als Text oder als String zurückzugeben? Oder muss ich das Array von Objekten durchlaufen und sie konvertieren?

Danke für die Hilfe!

ähnlicher Code:

await findAll({ 
    where: { 
    date: { $gte: sevenDaysAgo }, 
    newsSource: sourceList, 
    }, 
    order: ['date'], 
    raw: true, 
}); 

Antwort

0

Ich glaube, Sie sequelize Getter für diese verwenden können. Abhängig von der Größe des Puffers kann dies eine sehr schlechte Idee sein.

const Employee = sequelize.define('employee', { 
    picture: { 
     type: Sequelize.BLOB, 
     allowNull: false, 
     get() { 
     return this.getDataValue('picture').toString('utf8'); // or whatever encoding is right 
     }, 
    }, 

    }); 

modifiziert von here.

+0

Gibt es eine Möglichkeit, dies zu tun, wenn die Raw-Option auf True gesetzt ist? –

+0

Ich werde die Antwort akzeptieren, da es für dataValues ​​löst. Eine bessere Antwort wäre jedoch, wenn es eine Möglichkeit gäbe, das rohe Json-Objekt über Sequelize zu behandeln. Nicht sicher, ob das aber unterstützt wird –