2016-11-29 14 views
5

मैं अपने प्रतिक्रिया से डेटा पोस्ट करने का प्रयास कर रहा हूं। बैकएंड - एक्सप्रेस।एक्सिस पोस्ट अनुरोध। कोई खाली वस्तु

var express = require('express'); 
var app = express(); 
var bodyParser = require("body-parser"); 
var methodOverride = require("method-override"); 
var mongoose = require("mongoose"); 
var expressSanitizer = require("express-sanitizer"); 

mongoose.connect("mongodb://localhost/blog-react"); 

//app config 
app.set("view engine", "ejs"); 
app.use(express.static("public")); 
app.use(bodyParser.urlencoded({extended: true})); 
//must be after parser 
app.use(expressSanitizer()); 
app.use(methodOverride("_method")); 

//schema config 
var blogSchema = new mongoose.Schema({ 
    title: String, 
    image: String, 
    body: String, 
    //it should be date. With default value now. 
    created: { 
     type: Date, default: Date.now 
    } 
}); 

var Blog = mongoose.model("Blog", blogSchema); 


function handle500(response, error){ 
    console.log(error.stack); 
    response.status(500); 
    response.json({error: "error: internal server error"});  
} 

app.post("/api/blogs", function(request, response){   
    var blog = { 
     title: request.sanitize(request.body.title), 
     image: request.sanitize(request.body.image), 
     body: request.sanitize(request.body.body) 
    }; 
    console.log(request.body); 
    Blog.create(blog, function(error, newBlog){ 
     if(error){ 
      console.log("inside post handler ERROR") 
      handle500(response, error); 
     } 
     else{ 
      console.log("inside post handler OK") 
      response.json({status: "success"});   
     } 
    }); 
}); 

कोड प्रतिक्रिया: यहाँ बैकएंड कोड है

var requestUrl = "/api/blogs";  
    var blog = { 
     title: "a", 
     image: "b", 
     body: "c" 
    } 
    axios.post(requestUrl, blog) 
    .then(function(response){ 
     console.log("success",response.data) 
    }) 
    .catch(function(response){ 
     console.log("error", response); 
    }); 

मैं Axios के माध्यम से डेटा पोस्ट करते हैं - request.body हमेशा {} है लेकिन अगर मैं नियमित रूप के माध्यम से डेटा पोस्ट - सब कुछ सही है - अनुरोध। सभी में अपेक्षित डेटा शामिल है।

मैं अक्षरों के साथ क्या गलत कर रहा हूं?

+1

अपने ब्राउज़र की DevTools करें (नेटवर्क) को देखने के लिए वास्तव में अपने सर्वर – xShirase

उत्तर

8

आप एक मिडलवेयर, bodyParser.json() खो रहे हैं। इसे अपनी कॉन्फ़िगरेशन में जोड़ें।

mongoose.connect("mongodb://localhost/blog-react"); 

app.set("view engine", "ejs"); 
app.use(express.static("public")); 
app.use(bodyParser.json()); // <--- Here 
app.use(bodyParser.urlencoded({extended: true})); 
+0

भेजा जा रहा है क्या कैसे ब्राउज़र में इस को हल करने के जाँच? – aks

संबंधित मुद्दे