https://github.com/dandean/express-formを使用していますexpress-form
タイプの入力を検証する機能はありfile
ますか? 私は特にrequire
、誰かがファイルをアップロードすることを望んでいます。
ライナスのために編集:)
私はもう試した:
field("pdf").required("pdf", "You must select a file to upload.")
req.body.pdf
問題は、これがnotを探しているためreq.files.pdf
、検証が失敗したと常に考えていることです。
編集/作業コード:Linusの回答に基づいて機能させるために私がしたこと。
dataSources
パラメータを構成する必要があっただけでなく、フィールドのsize
プロパティを確認する必要もありrequired
ました。ファイル入力が空であっても、それはまだ存在する (メタデータなど) ため、フィールドで実行するだけでは十分ではありません。その代わりに、 が 0 より大きいことを確認するカスタム検証関数を実行しますpdf.size
。私のコードでは、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."))