2014-01-13 4 views
0

Я учусь обрабатывать загрузку файлов в экспресс 3. module.exports.upload - это мой обработчик маршрута для запроса POST для '/ image/upload':Обратный вызов в многопартийной разборке не выполняется, кажется (express 3)

var multiparty = require('multiparty'); 
module.exports.uploadPage = function (req, res) { 
    res.render('image/image', {file_content: null }); 
} 
module.exports.upload = function (req, res) { 
    var form = new multiparty.Form(); 
    form.parse(req, function(err, fields, files){ 
     console.log('inside form parsing call back'); 
     res.writeHead(200, {'content-type': 'text/plain'}); 
     res.end('received upload:\n\n'); 
    }); 
    if(req.method == 'GET') res.render('image/image'); 
} 

это моя форма:

<form action="/image/upload" enctype="multipart/form-data" method="post"> 
    <input type="file" name="thumbnail" multiple="multiple" /> 
    <input type="submit"/> 
</form> 

console.log ('внутри формы разборе перезвоните'); никогда не выполняется, поскольку в терминал ничего не записывается. Я использую настройку dev, журнал запросов POST даже не регистрируется в консоли.

Btw, я сравнил свой код с примером here. Я верю, что делаю все правильно, но я могу ошибаться.

Обратный вызов, похоже, не выполняется в этой ситуации. Где пошло не так?

Спасибо!

ответ

0

Позвольте мне ответить на мой вопрос. Приведенный выше код хорошо, но причина, это не работает, потому что я добавил

app.use(express.multipart()); 

в app.js

затем добавить

var multiparty = require('multiparty'); 

снова в контроллере, который является изображение .js

Это может быть не очень полезно для вас, но убрать это то, что только load (require (...)) multiparty, где ему нужно обрабатывать формы. Не используйте app.use, используйте требование, предлагаемое в этом документе:

multiparty on github

Смежные вопросы