/ / एक्सप्रेस: ​​POST req - नोड.जेएस, एक्सप्रेस, बॉडी-पार्सर के बाद Req.body अपरिभाषित है

एक्सप्रेस: ​​Req.body पोस्ट req-node.js, एक्सप्रेस, बॉडी-पार्सर के बाद अपरिभाषित है

मैं JS को नोड करने के लिए नया हूं। मैं पोस्ट अनुरोध के लिए अपरिभाषित हो रहा हूं। मेरा एक्सप्रेस संस्करण 4.10 है। मुझे लगता है कि मुझे कुछ याद आ रहा है।

var express = require("express");
var http = require("http");

var app = express();

app.use(express.static(__dirname + "/public"));

var bodyParser = require("body-parser");

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

app.post("/test",function(req,res){
var color1 = req.body.color;
console.log(req.headers);
console.log("Color : "+color1);
});

कंटेंट-लेंथ में मुझे 234 मिल रहे हैं। यहां छवि विवरण दर्ज करें धन्यवाद!!

उत्तर:

जवाब के लिए 2 № 1

भविष्य के आगंतुकों के लिए - ऐसा लगता है कि @mscdex के सुझाव का नेतृत्व @ ग्राहक को अपने एपीआई को कॉल करने के लिए बदल सकता है ताकि यह पारित हो जाए application/json के मूल्य के रूप में Content-Type हैडर। एक अन्य विकल्प को बदलना है Content-Type हेडर कि body-parser पार्स करने का प्रयास।

आप कॉन्फ़िगर कर सकते हैं body-parser एक अलग स्वीकार करने के लिए Content-Type को निर्दिष्ट करके type इसे निम्नानुसार स्वीकार करता है:

app.use(bodyParser.json({ type: "application/vnd.api+json" }));

यह एक समाधान है जो एक एम्बर ऐप से भेजे गए JSON को पार्स करने के लिए मेरे लिए काम करता है। मुझे लगा कि डिफ़ॉल्ट को बदलना बेहतर है Content-Type हेडर द्वारा स्वीकार किया जाता है body-parser मेरे आवेदन के आसपास टूलींग के बाकी को बदलने की तुलना में।