簡體   English   中英

從upsert(insertOrUpdate)獲取插入行的ID序列化Node.js

[英]Get id of inserted row from upsert (insertOrUpdate) Sequelize Node.js

我正在創建一個REST API。 我想實現一個獨立的PUT操作,該操作可以創建或更新數據庫中的特定資源。

我正在使用node.js,postgreSQL和sequelize。 問題在於,sequelize upsert會根據對資源的更新或創建而返回truefalse

但是,如果資源已創建,我需要能夠將唯一標識符(列ID)發送回客戶端。

我嘗試的一種解決方案是嘗試通過在sequelize findOne查詢的“ where”屬性中指定從客戶端發送的每一列來查找完全相同的資源。 但是,如果客戶端發送不在數據庫中的其他列,則會引發錯誤。 在我的實現中,情況並非如此。

可以實現嗎? 最佳地沒有一些性能開銷。 謝謝

獲取ID后面從upsert在Sequelize是不可能的時刻。 有關更多信息,請參見: https : //github.com/sequelize/sequelize/issues/3354

該問題的可能解決方案是在請求更新的情況下強制用戶(或REST API客戶端)提供記錄的ID,在創建新記錄的情況下不提供ID。 這通常是一個好主意,因為它可以防止API往返數據庫,盡管這會使您的API更加嚴格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM