के साथ पोस्ट बॉडी निकालें मेरे पास एक साधारण नोड ऐप है जो ग्राहकों से मीट्रिक लिखना चाहिए। ग्राहक जेसन प्रारूप में मेट्रिक्स भेजते हैं जो पाइथन के ज़्लिब मॉड्यूल के साथ ज़िप्ड किए जाते हैं, मैं एक्सप्रेस बॉडीफेस होने से पहले अनुरोध पोस्ट को अनजिप करने के लिए एक मिडलवेयर जोड़ने की कोशिश कर रहा हूं।नोड + एक्सप्रेस
मेरे middlewares बस डिफ़ॉल्ट रूप से एक्सप्रेस द्वारा प्रदान की हैं:
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('less-middleware')({ src: __dirname + '/public' }));
app.use(express.static(path.join(__dirname, 'public')));
});
मैं एक साधारण मिडलवेयर कि डेटा हो जाता है जोड़ने के लिए कोशिश की है और फिर इसे unzips:
app.use(function(req, res, next) {
var data = '';
req.addListener("data", function(chunk) {
data += chunk;
});
req.addListener("end", function() {
zlib.inflate(data, function(err, buffer) {
if (!err) {
req.body = buffer;
next();
} else {
next(err);
}
});
});
});
समस्या zlib.inflate के साथ है मुझे यह त्रुटि मिलती है:
Error: incorrect header check
डेटा को संपीड़ित किया गया है अजगर के zlib मॉड्यूल:
zlib.compress(jsonString)
लेकिन लगता है कि न तो unzip, बढ़, gunzip काम करता है।
क्या आप वाकई एक zlib.unzip से और एक परिणाम के रूप में "गलती" नहीं मिलता हैं अगला() नहीं कहा जाता है? यदि ऐसा है, तो डेटा को सरणी को स्विच करने का प्रयास करें। यह उत्तर देखें http://stackoverflow.com/a/12776856/30763 इसके अतिरिक्त यह सुनिश्चित करें कि आपके मध्यवर्ती का उपयोग bodyParser से पहले किया जाता है। – Aaron
वह उत्तर नोड द्वारा किए गए अनुरोध को अनजिप करने के लिए नहीं है और ग्राहक द्वारा नहीं? किसी भी मामले में – alex88
@ alex88, आपको कोई त्रुटि होने पर 'अगली (गलती)' कॉल करनी चाहिए। मैं यह भी सुझाव देता हूं कि आप 'बॉडी पार्सर' मिडलवेयर से गुजरें और केवल 'req.body = JSON.parse (बफर)' सीधे करें। –