मैं 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
मेरे आवेदन के आसपास टूलींग के बाकी को बदलने की तुलना में।