我使用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请求是否包含要上传的文件吗?
答案 0 :(得分:1)
您可以使用以下方法检查用户上传的文件数量:
req.file('images')._files.length
这是船长的无证特征:
https://github.com/balderdashy/skipper/blob/master/standalone/Upstream/Upstream.js#L51
所以它可以在未来的versioln中解释。所以,请确保在没有先测试的情况下升级模块。