我在express中使用connect-busboy:
var busboy = require('connect-busboy');
app.configure(function () {
app.use(express.logger());
app.use(busboy());
app.use(bodyParser());
app.use(function(err, req, res, next){
res.send(500, 'error');
});并有以下请求:
app.post('/save', function (req, res) {
console.log("Got request")
try {
console.log("I got it");
req.pipe(req.busboy);
var name = "";
var start = "";
var fstream;
req.busboy.on('field', function (fieldname, val, fieldnameTruncated, valTruncated) { }
req.busboy.on('file', function (fieldname, file) {
//some code
}
req.busboy.on('error', function (error) {
console.log("Error in uploading file with chunks: " + error);
// some code
})
req.busboy.on('finish', function () {
fstream.on('close', function(){
//some code
})
})客户端向我发送6个保存命令请求。我收到了不一致的2-6个请求。
这意味着,Got request只打印了2次,但是客户端发送了6次请求。
当我删除app.use(busboy());行时,Express.app得到6请求(但是我不能使用这个函数,因为req.busboy.on不工作)。
结论是app.use(busboy());忽略了来自客户端的一些请求,并且不会触发app.post。我该怎么解决它呢?
发布于 2014-08-14 20:36:01
您应该做的一件事是删除app.use(bodyParser());,因为服务生已经在处理正文解析了。
https://stackoverflow.com/questions/25305681
复制相似问题