2013-08-24 89 views
1

我有一個node.js的場景,我不知道會發生什麼。假設某人發佈了一個發佈請求,然後是另一個獲取相同資源的請求。發佈請求插入到數據庫中需要一些時間,在此期間節點將爲獲取請求提供服務。由於資源尚未添加到數據庫,因此節點將對錯誤的get請求作出響應。我的問題:node.js獲得後

a)這種情況可能嗎?

b)如果是這樣,理想情況下不應該返回資源?我應該如何避免這種併發問題?

回答

0

想一想。如果您正在正確實施基於URL的服務,那麼過程應如下所示:

  1. 客戶端POST新數據項。使用網址進行數據收集。
  2. 發佈數據,響應具有唯一的URL來訪問新插入的數據項。
  3. 現在客戶端從這個URL獲取數據項。

客戶不應該假設或猜測新插入的項目的未來網址,而不會被服務器被證實。客戶端可以獲取數據項的網址:

  1. 通過對數據收集進行GET,並獲取其中一個數據項的url。
  2. 通過使用新數據進行POST,並且該成功的帖子的響應返回新數據項的url。
+0

如果我的資源是整個表即得到整個表,但只有後一排(我知道我說同樣的資源,但只是好奇)?我不應該假設客戶端知道GET url,因爲它總是一樣的嗎? – user2103008

+0

@ user2103008客戶可以知道表的GET網址,居然得到了表,沒問題。但客戶端不能期望它包含更新的數據,直到收到POST的確認響應。 –

+0

@ user2103008我已更新答案以顯示'數據收集'和'數據項'之間的區別。 –