我使用express-form
https://github.com/dandean/express-form可以使用表單驗證輸入類型的'文件'是否需要?
是否有驗證類型file
的輸入的能力嗎?我特意要require
有人上傳文件。
編輯萊納斯:)
我已經試過: field("pdf").required("pdf", "You must select a file to upload.")
的問題是,這是尋找req.body.pdf
不req.files.pdf
,所以它始終認爲驗證失敗。
編輯/工作代碼:根據Linus的回答,我做了什麼來完成它的工作。
我不僅需要配置dataSources
PARAM,我還需要檢查該字段的size
財產只是在場上做了required
是不夠的,因爲即使一個文件輸入是空的,它仍然存在(元數據等)。相反,我做了一個自定義驗證函數,確保pdf.size
大於0.在我的代碼中,我還檢查了是否有title
。我留在這裏以防萬一有人想知道如何將多個驗證串聯起來。
var form = require('express-form')
.configure({dataSources: ['body', 'files', 'query', 'params']});
form(
field("pdf.size").custom(function(value) {
if (value <= "0") {
throw new Error("You must select a file to upload.");
}
})
, field("title").trim().required("title", "Please enter a title for your PDF."))
http://whathaveyoutried.com/? –
@LinusGThiel好點,編輯補充。 – k00k