Javascript Nodejs:使用用户参数发出GET请求

Javascript Nodejs:使用用户参数发出GET请求,javascript,node.js,url,express,server,Javascript,Node.js,Url,Express,Server,我是新来的。我正在做一台快递服务器。我通过url接收一些参数,并使用接收到的url中的参数向另一台服务器发出请求 var express = require("express"), app = express(), bodyParser = require("body-parser"), methodOverride = require("method-override"); request = require('request'); Client = require('node-rest-c

我是新来的。我正在做一台快递服务器。我通过url接收一些参数,并使用接收到的url中的参数向另一台服务器发出请求

var express = require("express"),
app = express(),
bodyParser  = require("body-parser"),
methodOverride = require("method-override");
request = require('request');
Client = require('node-rest-client').Client;


app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(methodOverride());

var router = express.Router();

app.use(router);

router.get('/get_metric_names_by_pattern', function(req, res) {

   console.log('get_metric_names_by_pattern '+req.url);

   console.log(req.query.pattern);
   //console.log(req.parameters);

   res.header('Access-Control-Allow-Origin', '*');
   var client = new Client();
   var salida;


   console.log(req.params.name);
   //Creamos la variable para los parametros
   var args = {
        parameters: {pattern: "OEE"}
        //headers: { "test-header": "client-api" }
    };



    console.log(args);
    console.log(args.parameters.pattern);
   client.get('http:// localhost:8000/get_metric_names_by_pattern/?pattern=:pattern', req.query.pattern,


    //http://   localhost:8000/get_metric_names_by_pattern/?pattern=OEE

    function (data, response) {
        //console.log(args.parameters.pattern);
        console.log(data);
        //var pattern = req.query.pattern;
        //data = data.toString('utf8'); //Transformamos los datos a string para que los reconozca el navegador
        //console.log(data);
      salida = JSON.parse(data);
      //console.log("Datos:", salida.date);
      res.send(salida); //Lo enviamos al navegador
      //console.log(salida);
    });
});
我确实从客户机(在本例中为“OEE”)接收到参数,但我找不到将该字符串插入客户机.get('http://localhost:8000/get\u metric\u names\u by\u pattern/?pattern=:pattern',req.query.pattern

请求应该看起来像该(//)下的注释行,从该请求中我接收到一个json,如下所示:

["PanelPC0_OEE", "empacadora1.OEE", "empacadora1.OEEE", "empacadora1.OEE_Avaible", "empacadora1.OEE_Performance", "empacadora1.OEE_quality"] 
console.log如下所示:

节点servicio.js

Servidor corriendo en:http://localhost:3000

按模式获取度量值名称/按模式获取度量值名称/?模式=OEE

OEE

未定义

{参数:{模式:'OEE'}}

OEE

缓冲器5b 5d

它应该是这样的:

节点servicio.js

Servidor corriendo en:http://localhost:3000

按模式获取度量值名称/按模式获取度量值名称/?模式=OEE

OEE

未定义

{参数:{模式:'OEE'}}

OEE

缓冲器5b 22 50 61 6e 65 6c 50 43 30 5f 4f 45 22 2c 20 22 74 65 61 6d 66 6f 6f 64 73 2e 62 6f 67 6f 74 61 2e 6d 61 72 67 72 69 6e 61 73 2e 65 6d 70 61。。

请,我需要知道如何将该参数插入新的url。如果此帖子太长或太明显,很抱歉。请提前感谢根据,要插入参数或参数,您应该使用:

${param}

像这个例子:

var args = {
    path: { "id": 120, "arg1": "hello", "arg2": "world" },
    parameters: { arg1: "hello", arg2: "world" },
    headers: { "test-header": "client-api" }
};


client.get("http://remote.site/rest/json/${id}/method?arg1=${arg1}&arg2=${arg2}", args,
    function (data, response) {
        console.log(data);
        console.log(response);
    });
因此,在您的情况下,您应该尝试使用:

var args = {
    parameters: { pattern: req.query.pattern },
};

client.get('http:// localhost:8000/get_metric_names_by_pattern/?pattern=${pattern}', args,
    function(data, response){

    });

虽然不太好看,@mrwillihog的评论给了我这个想法,wich实际上很管用

urln = 'http://localhost:8000/get_metric_names_by_pattern/?pattern='+req.query.pattern;

console.log(urln);

client.get(urln,    function (data, response) { });

也许我读错了,但这不是简单的
'http://localhost:8000/get\u metric\u names\u by\u pattern/?pattern='+req.query.pattern
?这会导致语法错误:输入意外结束@mrwillihog我已经尝试过了,但结果是一样的。@jack.the.ripper