首页 > 解决方案 > 如何在 NodeJS 中的 URL 中传递变量

问题描述

我正在使用 api 发送短信我想在 URL 中传递电话号码和消息等变量。

问题:当我动态发送变量时,它没有检索变量的值。

下面是我的代码:

  router.post('/testSms',(req,res) => {

  const phone = req.body.phone;
  const msg  = req.body.message;

  request({
      url:'http://www.techsolver.in/http-api.php?username=abc&password=pwd&senderid=MYID&route=1&number=phone&message=msg',
      method:'GET'
    },function(err,response){

        if(err){
            console.log("Error",err);
        }
        else{
            console.log(response);
        }

    });
});

module.exports = router;

这里它不检索值。有人请让我知道如何解决这个问题。

谢谢

标签: node.js

解决方案


您没有引用变量,而是将它们的名称用作 URL 中的字符串。

您必须将它们作为查询参数附加到 URL 字符串中,如下所示:

'http://www.techsolver.in/http-api.php?username=abc&password=pwd&senderid=MYID&route=1&number=' + phone + '&message=' + msg

您可以看到phoneandmsg作为变量附加在字符串中,而不是仅仅写入字符串中,完整的代码将是:

router.post('/testSms',(req,res) => {

  const phone = req.body.phone;
  const msg  = req.body.message;

  request({
      url:'http://www.techsolver.in/http-api.php?username=abc&password=pwd&senderid=MYID&route=1&number=' + phone + '&message=' + msg,
      method:'GET'
    },function(err,response){

        if(err){
            console.log("Error",err);
        }
        else{
            console.log(response);
        }

    });
});

module.exports = router;

或者,您可以查看涉及模板文字的 Anuj Pancholi 的答案,以及 nodejs 的 querystring 模块的使用。


推荐阅读