即使文件未发送,如何执行路由

时间:2017-02-09 19:00:12

标签: javascript node.js file express multer

我有这个atm:

var multer = require('multer');
var upload = multer({dest:'./public/upload'});
var session = require('express-session');
var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
var crypto = require('crypto');


var upload = multer({
  storage: multer.diskStorage({

    destination: function (req, file, cb) {
      cb(null, './public/upload');
    },

    filename: function (req, file, cb) {
      var ext = require('path').extname(file.originalname);
      ext = ext.length > 1 ? ext : "." + require('mime').extension(file.mimetype);
      require('crypto').pseudoRandomBytes(16, function (err, raw) {
        cb(null, (err ? undefined : raw.toString('hex')) + ext);
      });
    }
  })
});



router.post('/registo',upload.single('file'), function (req, res) {

因为你们可以看到我在route.post中发送文件,当用户发送它时它工作正常,但如果不是我得到错误,内部服务器错误(500)如何在没有文件的情况下执行帖子如果用户没有发送任何内容?

1 个答案:

答案 0 :(得分:0)

您可以在客户端检查并在那里发送(或不发送)正确的(即另一个)POST。

在服务器端,您可以尝试处理这种情况:

router.post('/registo',upload.single('file'), function (req, res) {
    if(req.file.size === 0){
    ...
    }
...
}