Angularjs Publicar solicitud al servidor

¿Cómo puedo recostackr esa información que estoy enviando desde el cliente? en este caso, el id?

¿Cómo puedo obtener la identificación?

Yo uso la solicitud del lado del cliente:

return $http.post('/api/kill', {id:4}, { headers: {} }) 

y cuando verifico el servidor para ver si es necesario console.log(Req.body) obtengo:

  { '{"id":4}': '' } 

req.body.id devuelve:

 undefined 

¿Cómo puedo obtener el id de 4?

EDIT1:

el código principal se encuentra en https://github.com/meanjs/mean

Código del lado del servidor:

 app.post('/api/kill', function (req, res) { console.log(req.body); // { '{"id":4}': '' } console.log(req.body.id); // undefined }); 

Necesitas asignar esa propiedad de id a un objeto como

item = { id : 4 }

Supongamos que tiene un text-box y el usuario desea guardar un nuevo elemento insertando su nombre en él y haciendo clic en enviar.

Supongamos también que está utilizando una colección de artículos MongoDB , que solo tienen un campo de id para simplificar.

Esto es lo que debes hacer para que todo sea fácil.

Asegúrese de que está importando bodyParser

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

HTML: guardar un nuevo elemento con una identificación personalizada

 

Parte angular – ItemController.js

 'use strict'; angular .module('myApp') .controller('ItemController', ItemController); function ItemController($http) { var vm = this; /** Creates a New Marker on submit **/ vm.createItem = function() { // Grabs all of the text box fields var itemData = { id : vm.formData.id }; // Saves item data to the db $http.post('/api/kill', itemData) .success(function(response) { if(response.err){ console.log('Error: ' + response.err); } else { console.log('Saved '+response); } }); }; } 

Manejo de rutas – route.js

 var ItemFactory = require('./factories/item.factory.js'); // Opens App Routes module.exports = function(app) { /** Posting a new Item **/ app.post('/api/kill', function(req, res) { ItemFactory.postItem(req).then( function (item) { return res.json(item); }); }); }; 

Publicar en MongoDB – item.factory.js

 var Item = require('../models/item-model'); exports.postItem = postItem; function postItem(item) { return new Promise( function (resolve, reject) { var newItem = new Item(item.body); newItem.save(function(err) { if (err){ return reject({err : 'Error while saving item'}); } // If no errors are found, it responds with a JSON of the new item return resolve(item.body); }); }); } 

Si intenta console.log() en los diferentes fragmentos de código donde pasé el elemento, puede ver correctamente un objeto con id property .

Espero haber sido de ayuda.

te pierdes la comilla simple:

 var obj = { 'id':4 }; console.log(obj.id); //display 4 

en tu ejemplo:

  return $http.post('/api/kill', {'id':4}, { headers: {} }) 

La respuesta que está recibiendo no está en forma de objeto.

  { '{"id":4}': '' } 

es un par de valores clave y la clave es una cadena

 '{"id":4}' 

Con el fin de obtener el valor correcto en su extremo, su respuesta json debe ser como

 { { 'id':4 } } 

y entonces funcionará como

  console.log(req.body); // { {"id":4} } console.log(req.body.id); // 4 

Asegúrese de habilitar el analizador de cuerpo JSON en su aplicación node.js.

 var bodyParser = require('body-parser'); .... app.use(bodyParser.json());