我使用sails.js
来创建后端,它支持发布文本并在我的控制器方法中同时上传文件/图像。由于业务逻辑,我需要告诉是否对此控制器方法的POST请求包含用于上传的文件。如何判断POST请求是否包含要在Sails.js中上传的文件?
要上传文件,我使用sails.js中的内建Skipper
module并在req
参数中使用file
字段。例如,如果我需要上传图片,我把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请求包含文件上传?
感谢您的建议,但是,我得到了这个错误:'错误:EMAXBUFFER:上游('NOOP_images')在插入接收器之前超时。在等待4500毫秒后仍然没有使用。您可以通过更改'maxTimeToBuffer'选项来配置此超时。我想当你调用'req.file('images')._ files.length'时,会执行'req.file()'函数,如果在那个时间窗口内没有收到文件输入,会导致上述错误。 – TonyGW
我想我很久以前有同样的问题,我用这个:http://stackoverflow.com/questions/28185223/sails-js-how-to-know-if-the-request-contains-a-file-上传/ 31651551#31651551 但它可能不工作了(得到了负面的回答:(如果它适合你,请upvote;) – hlozancic