logging日志并在nodejs中获取参数

我试图做简单的logging器nodejs来处理post,并得到请求,但我有问题,因为node-js的非阻塞function,参数打印后系统打印响应日志这里是我的码

process.stdout.write(createReqFormat(req)); if(req.method !== 'GET') { var form = new formidable.IncomingForm(); form.parse(req, function(err, fields, files){ process.stdout.write('\n Parameters:' + util.inspect(fields)); }); } res.on('finish', function(){ process.stdout.write(createResFormat(res)); }); next(); 

现在我只打印参数为post参数,但这已经杀了我。

 Started POST /post for 127.0.0.1 at Mon Apr 27 2015 09:08:36 GMT+0700 (WIB) Completed 200 OK Parameters:{ one: '1', kals: '123', test: '1233', 'test[123]': 'dfjksdjf' } 

如何使它按正确的顺序打印?

谢谢

parsing表单实际上可能比完成响应需要更多的时间,所以在完成表单之前不要调用next (或res.send )。

 process.stdout.write(createReqFormat(req)); res.on('finish', function(){ process.stdout.write(createResFormat(res)); }); if(req.method !== 'GET') { var form = new formidable.IncomingForm(); form.parse(req, function(err, fields, files){ if (err) return next(err); process.stdout.write('\n Parameters:' + util.inspect(fields)); next(); }); } else { next(); }