2013-11-01 6 views
5

को पुन: स्थापित करें मैं बस पुन: स्थापित करने की कोशिश करना शुरू करता हूं (और सामान्य रूप से नोडजेएस) और मुझे उपयोगकर्ताओं को पोस्ट डेटा प्राप्त करने में कुछ परेशानी है।2.6 पोस्ट डेटा

मेरे पास एक मूल नोड ऐप है। प्रलेखन और कुछ ब्लॉग पोस्टों पर मैंने पढ़ा है कि यह क्वेरी पार्सर का उपयोग करने जितना आसान है लेकिन यह काम नहीं कर रहा है। मुझे लगता है कि समस्या मेरे कर्ल कमांड पर है।

नोड ऐप:

var restify = require('restify'); 

function userCreation(request, result, next) { 
    console.log(request.body); 
    console.log(request.query); 
    console.log(request.params); 
    result.send({ name: request.params.name }); 
    return next(); 
} 

var server = restify.createServer({ version: '1.0.0' }); 
server.use(restify.gzipResponse()); 
server.use(restify.queryParser()); 

server.post({ path: '/users', versions: ['1.0.0'] }, userCreation); 

server.listen(8080, function() { 
    console.log('%s listening at %s', server.name, server.url); 
}); 

कर्ल आदेश:

curl -is -X POST -H 'accept-version: 1.0.0' -d '{ "name": "John" }' http://127.0.0.1:8080/users 

curl -is -X POST -H 'accept-version: 1.0.0' -d 'name=John' http://127.0.0.1:8080/users 

प्रतिक्रिया है:

HTTP/1.1 200 OK 
Content-Type: application/json 
Content-Length: 2 
Date: Fri, 01 Nov 2013 09:40:08 GMT 
Connection: keep-alive 

{} 

और नोड लॉग हैं:

restify listening at http://0.0.0.0:8080 
undefined 
{} 
{} 

आशा किसी को मेरी मदद कर सकते :)

केविन

उत्तर

1

उपयोग बजाय queryParser की की bodyParser

0

के लिए अपने RESTful सेवा में HTTP POST अनुरोधों द्वारा भेजे गए JSON दस्तावेज़ संसाधित करने के लिए आप की आवश्यकता होगी:

  1. उपयोग bodyParser आपकी सेवा में
  2. सुनिश्चित करें कि करने के लिए HTTP हेडर शामिल "सामग्री-प्रकार: एप्लिकेशन/जेसन" जब आप HTTP POST अनुरोध
सबमिट करते हैं एच : -X पोस्ट -is एच "application/json सामग्री प्रकार"

कर्ल: ५३६९१३६३२१०

आपका कर्ल आदेश की तरह कुछ होना चाहिए "स्वीकार-संस्करण: 1.0.0" -d '{ " नाम ":" जॉन "} ' http://127.0.0.1:8080/users

आपका Restify सेवा कोड:

var restify = require('restify'); 
 

 
function userCreation(request, result, next) { 
 
    console.log(request.body); 
 
    result.send({ 
 
    name: request.body.name 
 
    }); 
 
    return next(); 
 
} 
 

 
var server = restify.createServer({ 
 
    version: '1.0.0' 
 
}); 
 

 
server.use(restify.gzipResponse()); 
 
server.use(restify.bodyParser()); 
 

 
server.post({ 
 
    path: '/users', 
 
    versions: ['1.0.0'] 
 
}, userCreation); 
 

 
server.listen(8080, function() { 
 
    console.log('%s listening at %s', server.name, server.url); 
 
});

शुभकामनाएँ!

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