On Friday, January 11, 2013 6:21:14 PM UTC-6, Ryan Kelly wrote:
>
> Hello, I am new to Node and so far having a blast. I'm writing a simple
> API but am having trouble getting data from the json payload in the body to
> create a new customer. Any help would be appreciated.
>
> *Sample Payload passed in using curl (createCustomer.json):*
> {
> "firstName": "Mike",
> "lastName": "Ditka",
> "email": "[email protected]",
> "username": "mikeditka",
> "password": "password",
> "address": {
> "street": "85 Bears Ave.",
> "city": "Chicago",
> "state": "IL",
> "zip": 12345
> }
> }
>
> *using*: curl -is -X POST -d "@createCustomer.json"
> http://localhost:3000/customers
>
>
> *customer schema:*
> var customerSchema = new Schema({
> firstName : String, //{ type: String, required: true, trim:
> true },
> lastName : String, //{ type: String, required: true, trim: true
> },
> username : String, //{ type: String, required: true, trim:
> true },
> password : String, //{ type: String, required: true, trim:
> true },
> email : String, //{ type: String, required: true, trim: true },
> phone : String,
> image : String,
> created : {type: Date, default: Date.now},
> address: {
> street : String,
> city : String,
> state : String,
> zip : Number
> }
> });
>
> *customers.js*
> exports.customer = function(req, res) {
> console.log(req.body);
>
> var customer = new Customer({
> firstName: req.body.firstName,
> lastName: req.body.lastName,
> username: req.body.username,
> password: req.body.password,
> email: req.body.email
> /*customer.phone = req.body.phone;
> customer.image = req.body.image;
> customer.address.street = req.body.street;
> customer.address.city = req.body.city;
> customer.address.state = req.body.state;
> customer.address.zip = req.body.zip;*/
> });
> customer.save(function (err) {
> if (!err) {
> return console.log("created");
> } else {
> return console.log(err);
> }
> });
> return res.send(customer);
> }
>
> *server.js*
> // require restify and bodyParser to read Backbone.js syncs
> var restify = require('restify');
> var server = restify.createServer();
>
> server.use(restify.acceptParser(server.acceptable));
> server.use(restify.queryParser());
> server.use(restify.bodyParser());
>
> server.pre(function(req, res, next) {
> req.headers.accept = 'application/json';
> return next();
> });
>
> // Set up our routes and start the server
> server.get('/customers', customers.list);
> server.post('/customers', customers.customer);
>
> Can anyone make sense of what I posted to understand why when I POST using
> that curl command, it creates a new document, but it only contains the ids
> created by MongoDB - no customer data?
>
>
>
More Info:
*// console.log(req.body)*
{
"firstName": "Mike",
"lastName": "Ditka",
"email": "[email protected]",
"username": "mikeditka",
"password": "password",
"address": {
"street": "85 Bears Ave.",
"city": "Chicago",
"state": "IL",
"zip": 12345
}
}
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en