TransWikia.com

Requst PUT en skill Alexa con node

Stack Overflow en español Asked by Sergio Castro on October 25, 2020

estoy creando un skill de Alexa la cual hace una peticion PUT a un API para modificar un registro, el lenguaje esta en nodejs, y no logro obtener el resultado que quiero, en peticiones GET funciona sin problema, no se que me este faltando, de ante mano muchas gracias.

function updateAbasto() {

return new Promise(((resolve, reject) => {
    
var options = {
    host: 'serchcas.herokuapp.com',
    path: '/api/abasto/update',   
    method: 'PUT',        
    form: {
        '_id': '5f3e21e397343822648eb2e3',
        'articulo': 'liquido',
        'mes': 'febrero',
        'almacen': 'uno',
        'sol': '44',
        'ent': '28'
    }
};

const request = https.request(options, (response) => {
  response.setEncoding('utf8');
  let returnData = '';

  response.on('data', (chunk) => {
    returnData += chunk;
  });

  response.on('end', () => {
    resolve(JSON.parse(returnData));
  });

  response.on('error', (error) => {
    reject(error);
  });
});
  request.end();
}));

}

One Answer

Bueno después de una noche di con el problema, espero a alguien le sirva.

Sucede que cambie la función que hace la petición quedando así:

// no olvidar hacer los require necesarios
 
const https = require('https');
const request = require('request');

function updateAbasto() {
        
    var options = {
        'method': 'PUT',
        'url': 'https://serchcas.herokuapp.com/api/abasto/update',
        'headers': { 
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        form: {
            '_id': '5f3e21e397343822fdf884b2e3',
            'articulo': 'liquido',
            'mes': 'febrero',
            'almacen': 'uno',
            'sol': '44',
            'ent': '224'
        }
    };
    
    request(options, function (error, response) {
        if(error) throw new Error(error);
        console.log(response.body);
    });    
        
}

Lo que también me di cuenta fue que, si esta petición la hago en Postman, devuelve un objeto con los datos del registro antes de ser modificado, por alguna razón ese objeto no lo pude recibir en el Intent como respuesta, y por eso me marcaba error, pero el registro si se actualizo.

Bueno muchas a gracias, espero a alguien le pueda servir este código !!!

Answered by Sergio Castro on October 25, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP