首先,我想爲我的英語道歉。如何避免使用Express在Node.js中重新發送數據
我有一個使用Express和Jade的Node.js應用程序。我的主頁有一個表格,允許人們註冊。我通過POST發送數據。我有一個這樣的處理程序:
app.post('/userCreate', user.create);
和:
exports.create = function(req, res){
//creates the user in the database
res.render('./game/main'); //goes to the main game page
}
我的問題是,當人們登記了,我呈現的主要頁面,在URL中出現「本地主機:3000/userCreate」。所以,如果我按F5,所有數據都會通過POST再次發送,因爲它再次捕獲'/ userCreate',並且它會嘗試創建另一個用戶。
我認爲一個選項可以在創建用戶後更改URL,但我意識到'render'和'redirect'方法都不會改變它。
我一直在閱讀關於post-redirect-get模式,但我不知道如何在沒有表單的情況下進行獲取,我的意思是,通過javascript而不是HTML。
什麼是您的數據庫? 我假設mongo與貓鼬。 您應該爲您的用戶添加一個唯一的密鑰(用於電子郵件或僞...)email:{type:String,index:{unique:true}},' – Cyrbil
我有一個唯一的密鑰。雖然您按F5鍵,但用戶不會被創建,因爲它是唯一的。但問題是我不想重發數據。 – Neoares