Validation express form能否验证所需的“文件”输入类型?

Validation express form能否验证所需的“文件”输入类型?,validation,node.js,express,Validation,Node.js,Express,我用的是快递 它是否能够验证类型文件的输入?我特别想要求有人上传一个文件 为Linus编辑: 我试过: fieldpdf.requiredpdf,必须选择要上载的文件 问题是,这是在寻找req.body.pdf而不是req.files.pdf,因此它总是认为验证失败 编辑/工作代码:根据Linus的回答,我做了什么使其工作 我不仅需要配置dataSources参数,还需要检查字段的size属性,因为仅对字段执行required操作是不够的,因为即使文件输入为空,它仍然存在元数据等。因此,我需要执

我用的是快递

它是否能够验证类型文件的输入?我特别想要求有人上传一个文件

为Linus编辑:

我试过: fieldpdf.requiredpdf,必须选择要上载的文件

问题是,这是在寻找req.body.pdf而不是req.files.pdf,因此它总是认为验证失败

编辑/工作代码:根据Linus的回答,我做了什么使其工作

我不仅需要配置dataSources参数,还需要检查字段的size属性,因为仅对字段执行required操作是不够的,因为即使文件输入为空,它仍然存在元数据等。因此,我需要执行自定义验证函数,确保pdf.size大于0。在我的代码中,我还检查是否有标题。我把它留在这里,以防有人想知道如何组合多个验证

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."))
发件人:

Express Form有各种配置选项,但针对典型Express应用程序的合理默认值

dataSources数组:筛选和验证数据时用作数据源的Express请求属性数组。默认值:[正文、查询、参数]

因此,沿着这些思路应该可以做到:

var form = require('express-form')
           .configure({dataSources: ['body', 'files', 'query', 'params']});
发件人:

Express Form有各种配置选项,但针对典型Express应用程序的合理默认值

dataSources数组:筛选和验证数据时用作数据源的Express请求属性数组。默认值:[正文、查询、参数]

因此,沿着这些思路应该可以做到:

var form = require('express-form')
           .configure({dataSources: ['body', 'files', 'query', 'params']});

@LinusGThiel好点,添加了编辑。@LinusGThiel好点,添加了编辑。谢谢!不知道我怎么会错过。还有一件事要补充。我将添加一个编辑到我的原始问题,显示我必须做什么才能让它工作。谢谢!不知道我怎么会错过。还有一件事要补充。我将在我的原始问题中添加一个编辑,显示我必须做什么才能使它工作。