2017-02-09 14 views
0

У меня есть этот атм:Как маршрут выполнить, даже если файл не отправить

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), как я могу выполнить сообщение без файла, если пользователь ничего не отправил?

+0

Если пользователь не послал любую вещь, то вы можете проверить, что если файл затем дальнейшая обработка в противном случае не Ответные выбран файл –

ответ

0

Вы можете проверить это на стороне клиента и отправить (или нет) надлежащее (то есть другое) POST там.

На стороне сервера вы можете попробовать справиться с этой ситуацией:

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