2015-11-22 40 views
5

Önceden tanımlanmış Sequelize Modeline göre veri almam gerekiyor.Daha önce tanımlanmış Sequelize Modeline göre öznitelikleri // ilişkilendirmeleri elde etmenin bir yolu var mı?

Ben gerekenler:

* attributes list 
    * attribute name 
    * attribute type (INTEGER, STRING,...) 
    * was it generated by association method? 
* list of associations 
    * association type (belongsTo, hasMany, ...) 

o konsolda Sequelize modellerini incelemek için oldukça zor Nedense:

> db.sequelize.models.Payment 
Payment // <- it's valid Sequelize Model {Object}, however its not inspectable 

> db.sequelize.models.Payment.attributes 
... 
type: 
{ type: { values: [Object] }, 
    values: [ 'cash', 'account', 'transfer' ], 
    Model: Payment, 
    fieldName: 'type', 
    _modelAttribute: true, 
    field: 'type' }, 
sum: 
{ type: 
    { options: [Object], 
     _length: undefined, 
     _zerofill: undefined, 
     _decimals: undefined, 
     _precision: undefined, 
     _scale: undefined, 
     _unsigned: undefined }, 
    Model: Payment, 
    fieldName: 'sum', 
    _modelAttribute: true, 
    field: 'sum' }, 
... 

Gördüğünüz gibi, alanlar türleri hakkında hiçbir gerçek bilgi yoktur. Aynı dernekler ile olur.

Bu verileri, model sınıfından kazma ve geri döndürme nesnesi olmadan çıkarmak için güvenilir "resmi" bir yol var mı?

cevap

13

Özellik adı gibi bir özellik ve nesne özellikli bir nesne olan Payment.rawAttributes'u deneyin. property.type.key, türe sahip bir dizedir.

Payment.associations derneklerin bir nesnedir - Anahtar adıdır ve her dernek bir associationType özelliğine sahip olacak - ayrıca association instanceof sequelize.Association.BelongsTo vb

+0

TEŞEKKÜRLER yapabilirsiniz. Yığın Taşması'nı iyice araştırdıktan sonra, Sequelize koduna girmeye başladım ve modelimin özelliklerine erişmeye başladım. DataType, "ABSTRACT {length: 255}" olarak gösterildiğinde nasıl okunacağını belirleyemedi. Yukarıdaki çalışmaların ikisi de. – NobleUplift

+1

Türü veritabanınızda kullanılan bir dize olarak almak için , 'ModelName.rawAttributes.propertyName.type.toSql() ' – Eric

+0

Teşekkürler! Sadece bugün kullandım. Bu gizemli "tip" nesne ve içerdiği tüm özellikler/yöntemler için belgeler var mı? – NobleUplift

İlgili konular