/ / बॉडीपार के बिना एक्सप्रेस में पार्सिंग JSON - json, node.js, एक्सप्रेस, अनुरोध

बॉडी पार्सर के बिना एक्सप्रेस में जेएसओएन पार्सिंग - जेसन, नोड.जेएस, एक्सप्रेस, अनुरोध

मैं एक साधारण एक्सप्रेस सर्वर लिखने की कोशिश कर रहा हूँइनकमिंग JSON (POST) लेता है, JSON को पार्स करता है और अनुरोध निकाय को सौंपता है। पकड़ मैं bodyparser का उपयोग नहीं कर सकता है। नीचे एक साधारण मिडलवेयर फ़ंक्शन के साथ मेरा सर्वर app.use को दिया जा रहा है

संकट: जब भी मैं अपने सर्वर को अतिरंजित (npm पैकेज के साथ डमी POST अनुरोध भेजता हूं जो आपको JSON टर्मिनल के माध्यम से भेजने की अनुमति देता है) मेरा सर्वर बार। मैंने req.on ("डेटा") का उपयोग करके इसी तरह से एक HTTP सर्वर लिखा था ... इसलिए मैं "स्टंप" कोई सलाह है?

const express = require("express");
const app = express();

function jsonParser(req, res, next) {
res.writeHead(200, {"Content-Type:":"application/json"});
req.on("data", (data, err) => {
if (err) res.status(404).send({error: "invalid json"});
req.body = JSON.parse(data);
});
next();
};

app.use(jsonParser);
app.post("/", (req, res) => {
console.log("post request logging message...");
});

app.listen(3000, () => console.log("Server running on port 3000"));

उत्तर:

उत्तर № 1 के लिए 18

मुझे लगता है कि एक्सप्रेस में रॉबॉडी मिलने जैसी समस्या है।

सिर्फ इस तरह:

app.use(function(req, res, next){
var data = "";
req.on("data", function(chunk){ data += chunk})
req.on("end", function(){
req.rawBody = data;
req.jsonBody = JSON.parse(data);
next();
})
})

और आपको उस त्रुटि को पकड़ने की जरूरत है जब स्ट्रिंग को पार्स करने के लिए और न्याय करने की आवश्यकता है Content-type का Req.

सौभाग्य।