Necesito para desencadenar una solicitud en mi node.js app. Mi aplicación tiene una ruta y cuando se ejecuta estoy tratando de dar con una dirección url que es generado de forma dinámica. Así que todo lo que necesita es iniciar una API de RESt de llamar a somethinglike:

"https://www.domainname.com/sometext/"+ var1 +"/someothertext"

Así que he intentado esto:

var options = {
    host: 'www.domainname.com',
    port: 80,
    path: '/1.0/'+var1,
    method: 'GET'
};

// trigger request 
request(options, function(err,response,body) {
.......
});

Cuando ejecuto este me sale este error:
options.uri is a required argument

Por lo tanto, mi objetivo aquí es para activar la solicitud que golpea a una dinámica url. Si yo tuviera una dirección url estática me podría conectar en la solicitud, que iba a funcionar bien.

De hecho, he tratado de hacer esto:

request("https://www.domainname.com/1.0/456", function(err,response,body) {
.......
});

y este funciona bien.

PERO estoy tratando de construir la url (path) de forma dinámica con var1 y que no funciona.

Cualquier sugerencia sobre cómo hacer esto?

InformationsquelleAutor zumzum | 2012-08-27

2 Comentarios

  1. 4

    Usted necesita una dirección URL o un URI en las opciones que se pasa como primer argumento a la request función

    Y la razón por la que request("https://www.domainname.com/1.0/456",function(err,response,body) {
    no falla, es porque está proporcionando la dirección url como el primer argumento

    Para cambiar su options objeto

    var options = {
        url: 'https://www.domainname.com/sometext/'+ var1,
        port: 80,
        method: 'GET'
    };

    Usted puede tratar de recortar el valor en var1 como
    var1 = var1.replace(/^\s*|\s*$/g, '');

    Que debería eliminar el espacio.

    • He hecho algunos editar. por favor, compruebe
    • el espacio en blanco que sigue ahí. Creo que el problema está en el signo + se utiliza int concatenación, no necesariamente en el valor de var1… no se como arreglar eso todavía.
    • trate de options.url = options.url.replace(/^\s*|\s*$/g, '') y ver si funciona
    • que trabajó para mí. gracias. Que elimina los espacios en blanco que solía tener.
  2. 0

    Porque el options argumento de que es tomada por la petición no se ha dado la correcta formato de objeto.

    El error que está recibiendo es debido a que usted necesita para enviar un url or uri como una opción. Esto puede ser aclarado aquí:

    https://github.com/request/request

    La siguiente debe hacer lo que usted quiere:

    Así que he intentado esto:

    var options = {
        url: "https://www.domainname.com/sometext/"+ var1 +"/someothertext"
        method: 'GET'
    };
    
    // trigger request 
    request(options, function(err,response,body) {
      console.log(response.statusCode);
    });
    • Probablemente yo no lo uso que de la horquilla, la mente. No ha sido tocado por un año. Utilice el real MECANISMO nacional de prevención módulo o mikeal del repositorio.

Dejar respuesta

Please enter your comment!
Please enter your name here