2014-10-06 3 views
0

я получаю следующее исключение, когда я вызываю метод/список с помощью следующей командыBusboy метание неопределенного исключения

'curl -v http://ec2-54-68-202-47.us-west-2.compute.amazonaws.com:8080/list/?name=test' 

Ошибка:

110.175.53.235 - - [Sun, 05 Oct 2014 13:08:27 GMT] "GET /list/?name=dafsdf HTTP/1.1" 500 1273 "-" "curl/7.26.0" TypeError: Cannot call method 'on' of undefined

Его хорошо, если я призываю «/ image/upload '.

// Import required modules 
var express = require('express'); 
var morgan = require('morgan'); 

var busboy = require('connect-busboy'); 
var fs = require('fs'); 
var path = require('path'); 



var app = express(); 

app.use(busboy()); 
app.use(morgan('combined')); 

app.get('/list', function(req, res) { 
     console.log("Hit the url /list"); 
     req.busboy.on('field', function(fieldname, val) { 
       //console.log('Field [' +fieldname);    
       res.send("data received"); 
     }); 
     //req.pipe(req.busboy); 
}); 

app.post('/image/upload', function(req, res) { 
     req.busboy.on('file', function(fieldname, file, filename) { 
       ... 
       res.send("file received"); 
     }); 
     req.pipe(req.busboy); 
}); 

// Run the application on port 3000 
app.listen(8080, function() { 
     console.log('Echo Application running at %d', 8080); 
}); 
+0

Вы уверены, что вы можете использовать Busboy с запросом GET? – xShirase

+0

Использование анализатора тела для GET/HEAD/подобных запросов бесполезно, потому что у этих типов запросов не должно быть тел. – mscdex

ответ

0

Busboy используется для разбора данных в форме ввода, поэтому он предназначен для запросов POST.

В Получаем список, вы бы лучше использовать синтаксис регулярных Ie: req.params

В словах mscdex

busboy works for any request, however connect-busboy specifically does not set up req.busboy for GET, HEAD, other requests that don't typically contain a body, or the Content-Type is not application/x-www-form-urlencoded or multipart/form-data

+0

'busboy' работает для любого запроса, однако' connect-busboy' специально [не настраивает 'req.busboy'] (https://github.com/mscdex/connect-busboy/blob/b9175fc77ddcca15e6db30cd309ecabecae76325/index.js# L9-L14) для 'GET',' HEAD', других запросов, которые обычно не содержат тело, или 'Content-Type' не является' application/x-www-form-urlencoded' или 'multipart/form- data'. – mscdex

+0

Спасибо, что яснее меня;) – xShirase

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