如何判断POST请求是否包含要在Sails.js中上传的文件?

时间:2016-07-10 19:00:30

标签: javascript node.js file-upload sails.js

我使用sails.js创建后端,它支持在我的一个控制器方法中发布文本和同时上传文件/图像。由于业务逻辑,我需要判断对此控制器方法的POST请求是否包含要上载的文件。

要上传文件,我使用sails.js中的内置Skipper module并使用file参数中的req字段。例如,如果我需要上传图片,我将请求中的images字段放到后端/ sails.js:

req.file('images').Upload({...}); 

我尝试使用req.file('images')检查传入的请求是否包含要通过以下方式上传的文件,但它不起作用 - 请求而不上传文件仍然提供req.file('images') = true

if (!!req.file('images')) { // this turns out to be true regardless of uploading file or not
            return uploadToS3(req, 'images');
        }

sails.log.info('creating entity without uploading file');
return createEntityWithoutImage(req.params.all());

知道如何判断POST请求是否包含要上传的文件吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下方法检查用户上传的文件数量:

req.file('images')._files.length

这是船长的无证特征:

https://github.com/balderdashy/skipper/blob/master/standalone/Upstream/Upstream.js#L51

所以它可以在未来的versioln中解释。所以,请确保在没有先测试的情况下升级模块。