Node.js 巴士司机抛出未定义的异常

Node.js 巴士司机抛出未定义的异常,node.js,Node.js,当我使用以下命令调用/list方法时,我得到以下异常 'curl -v http://ec2-54-68-202-47.us-west-2.compute.amazonaws.com:8080/list/?name=test' 错误: 110.175.53.235---[Sun,2014年10月5日13:08:27 GMT]GET/list/?name=dafsdf HTTP/1.1500 1273-curl/7.26.0 TypeError: 无法调用未定义的的方法“on” 如果我调用'/

当我使用以下命令调用/list方法时,我得到以下异常

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

110.175.53.235---[Sun,2014年10月5日13:08:27 GMT]GET/list/?name=dafsdf HTTP/1.1500 1273-curl/7.26.0 TypeError: 无法调用未定义的的方法“on”

如果我调用'/image/upload'url就可以了

// 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);
});

Busboy用于解析传入的表单数据,因此它用于POST请求

在获取列表时,最好使用常规语法ie:req.params

busboy为任何请求工作,但connect busboy专门负责 未为GET、HEAD和其他不符合要求的请求设置req.busboy 通常包含正文,或者内容类型不是 应用程序/x-www-form-urlencoded或多部分/表单数据


您确定可以将busboy与GET请求一起使用吗?对GET/HEAD/类似的请求使用正文解析器是没有用的,因为这些类型的请求不应该有正文。busboy适用于任何请求,但是专门为GET、HEAD和其他通常不包含正文的请求连接busboy,或者内容类型不是application/x-www-form-urlencoded或multipart/form data。