簡體   English   中英

Node.js服務器端表單驗證與客戶端響應

[英]Node.js server-side form validation with client-side response

Express-form是node.js / express的一個非常強大的驗證插件。 但是,在示例和文檔中,所有響應都是服務器端(console.log),這對於開發來說已經足夠了,但是告訴用戶出了什么問題卻不太實際。

目前,我可以想象兩種不同的解決方案:

  1. 提交表單並重新定向/重新定向表單,並附加req.body和驗證消息,將“錯誤”類添加到錯誤字段。
  2. 使用AJAX提交表單。

我更喜歡選項2,因為我不想在渲染'new'時再次查詢數據庫。 但我不知道如何將驗證結果傳遞回客戶端並將“錯誤”類添加到輸入字段。

有任何想法嗎?

我嘗試在瀏覽器的第一個實例中通過javascript驗證用戶輸入,然后在服務器上驗證輸出的表單中的錯誤(la rails)。 現在我正在使用我的一套自定義驗證器,所以我不能用express-form指出你正確的方向。

除了我的自定義正則表達式,我有時使用驗證器 npm包,您還可以使用普通DOM或某些框架在瀏覽器中使用validator驗證。

編輯

使用AJAX驗證非常簡單,您在請求中收到一個對象(如果您使用express.bodyParser()中間件),驗證參數,如果有一些錯誤,您可以在您的響應中指出它。

{
"errors": {
    "foo": "must be a number"
  }
}

和:

for (i in answer.errors) {
  var target = document.getElementById(i);
  target.class = "error";
  // here you can also handle the error description
}

如果你在瀏覽器端使用框架,有插件或我確信編寫一個很簡單。

暫無
暫無

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

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