我试图为nodejs制作简单的记录器来处理post和get请求,但是我遇到了问题,因为node-js的非阻塞功能,参数是在系统后打印的在这里打印响应日志是我的代码
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' }
如何以正确的顺序打印?
谢谢
答案 0 :(得分:1)
解析表单实际上可能比完成回复花费更多时间,因此请不要致电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();
}