2011-11-25 49 views
18

我有什麼選擇使用相同的JavaScript代碼來驗證客戶端和服務器端(Node.js)?可在客戶端和Node.js服務器上運行的JavaScript驗證?

+1

我最終寫了我自己的驗證。 基本上我有一個模型,例如對其進行驗證的人員。此人員模型既存在於客戶端,也存在於服務器上。當用戶在我的FORM上輸入詳細信息時,我填充Person對象並驗證它,給不正確的字段提供反饋。 將表單發回服務器後,我重新填充Person對象並使用從客戶端接收的值重新驗證。如果發生錯誤,我只是將它發回客戶端。 這樣我就可以在客戶端和服務器上重複使用同一個模型,運行單元測試並用jquery顯示錯誤。 –

回答

-14

無,您在服務器端驗證完全不同的標準。客戶端驗證純粹是用戶接受標準,與安全無關。服務器端驗證幾乎完全關注安全性。

+10

我不同意。忽略XSS和其他注入,我仍然想驗證一個表單字段長度爲X個字符並且是郵政編碼。否則,沒有任何東西可以阻止我進入Firebug並更改提交給服務器的值。 在客戶端和服務器上使用JavaScript都意味着代碼被重用。這將是愚蠢的不是。 –

+0

XSS和其他注入漏洞不容忽視,所以你的觀點是無關緊要的。 – austincheney

+0

我認爲他的觀點似乎有效。我想驗證一個電子郵件是客戶端和服務器上的電子郵件,而不用兩次完全相同的語言編寫完全相同的代碼。例如:https://github.com/bcardarella/client_side_validations – rgbrgb

8

看看revalidator。它被描述爲「機智和熨斗使用的跨瀏覽器/ node.js驗證器」。

相關問題