2017-08-08 25 views
0

我希望能夠呼籲Sequelize Model.create後接受普通原對象,已創建的對象本身,沒有元數據或任何其他事情。就像Model.find中的{raw: true}選項一樣。組原始=真上Sequelize Model.create

我已經看到了這樣的回答: Setting all queries to raw = true sequelize, 沒有,Model.create({name: 'test'}, {raw: true})不起作用。

感謝

+0

使用'model.toObject'函數:[http://mongoosejs.com/docs/api.html#document_Document-toObject](http://mongoosejs.com/docs/api.html#document_Document-toObject) – alexmac

+0

謝謝alexmac。但這是貓鼬,但我找到了一個類似的方法''model.get',我發佈了答案。 thnx – Mon

回答

1

非常感謝您的幫助。我找到了一個解決方案,雖然這不是我正在尋找的東西,但它有效,而且還很好。

的sequelize實體具有.get()方法返回普通對象的版本。所以它是這樣的:

Model.create(modelObject) 
.then((resultEntity) => { 
    const dataObj = resultEntity.get({plain:true}) 
} 

來自此線程:Sequelize, convert entity to plain object。尋找CharlesA的答案。

未與陣列試過,但檢查其意見,並在它旁邊,如果您有任何關於結果的排列問題的答案。 但由於.create()只返回一個對象,它適用於我。無論如何,如果你正在使用.findAll(),你應該使用{raw: true}選項,而不是該解決方案,因爲它在那個方法。

P.S.如果有人仍然有一個解決方案,Sequelize本身不會返回大resultEntity對象,而只是普通的數據對象,就像{raw: true}選項(因爲我覺得這仍然打火機嗎?),我們是開放的。

非常感謝。