繁体   English   中英

在NodeJS + Express Application中上传文件后如何清除request.files?

[英]How to clear request.files after file upload in NodeJS+Express Application?

我正在使用NodeJS + Express。 我提交了一个表格,并带有一个创建帐户的文件。 如果我要更新该帐户,并且不想更新图像。 这是我的代码:

uploadAndSave: function (image, cb) {
    if (!image) return this.save(cb)
    var self = this
    uploader.upload({'large': 300, 'small':150}, image,function(fileName){
    self.logo.filename = fileName;
    self.logo.cdnUri = 'https://myapp.s3.amazonaws.com/';
    self.save(cb);
});

在我的控制器中:

exports.update = function(req, res){
    var account = req.account
    account = _.extend(account, req.body)
    account.uploadAndSave(req.files.image, function(err) {
    if (err) {
      res.render('accounts/edit', {
        title: 'Edit Account',
        account: account,
        errors: err.errors
      })
    }
    else {
      res.redirect('/accounts/' + account._id)
    }
  })
}

req.files.image始终具有一定的价值。 我想,在首次上传文件后,此变量已设置,并且从未删除。 如何删除?

此属性是上载文件的对象。 该功能由bodyParser()中间件提供,尽管其他主体解析中间件也可以遵循此约定。 使用bodyParser()时,此属性默认为{}。

来源: http//expressjs.com/api.html#req.files

因为它始终是对象,所以!image总是返回true。 要检查对象是否为空,可以使用以下技术

我更喜欢Object.keys(obj).length === 0尽管这仅适用于“现代”浏览器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM