带船长的Sails.js:在开始上传之前检查文件input是否为空

我正在使用Sails 11.1和队长0.5.5。 我有一个表单在我的应用程序中创build一篇文章。 图像可以附加到一篇文章,所以有一个input文件。

我想检查,服务器端,如果这个input文件是空的,在尝试开始上传之前。

有没有可能,如果是的话,我该怎么做?

我试图检查req.files ,或req.files.photo (“photo”是input名称)和req.body.photo ,但它们始终未定义,即使有文件。 req.file('photo')总是被定义的,所以我不能检查它。

只是一个注意:当input填充文件,上传工作。

提前致谢。

PS:这个问题也可以在这里find,关于船长GitHub的问题。

我在几个星期前的工作中发现的唯一工作解决scheme是上传文件,然后查看是否有文件已经上传。

  req.file(inputname).upload({ dirname: targetLocation, maxBytes: 2*1024*1024 }, function (err, uploadedFiles) { // do stuff with uploadedFiles }); 

我不知道为什么你的req.file(inputname)即使在上传文件时也会返回null

重要的是,请注意调用req.file()是棘手的。 我最初用它来确定文件大小,扩展名等等。 看起来像一个很好的方法,如果它是无关紧要的避免上传任何东西。 但是,如果您在4.5秒(默认)内没有使用upload()调用进行跟踪,那么节点将以ETIMEDOUT错误崩溃。 我很难弄清楚,自那以后就没有抱怨上述方法。