【问题标题】:Send URL parameters in Node,Express JS在 Node,Express JS 中发送 URL 参数
【发布时间】:2017-10-31 19:26:00
【问题描述】:

我有一个端点https://www..com

当我进行 curl 调用时,我的端点为 https://www..com?param1=true

我想从 Nodejs 进行类似的调用,我不确定 param1 是否应该在标头中传递、连接到端点或传递选项。这样做的正确方法是什么?

我的 Node JS 看起来像这样调用我的节点服务器,我的文件如下所示,

    app.post('/thisway', function(req, res){
    var ENDPOINT = req.body.endPoint 
//(this gets me till https://<url> part of the endpoint string)
        var urlToHit = ENDPOINT.concat("?param1=true")
    var headers = {
            'Authorization': xxxxx,
            'Accept': '*/*',
            'X-Spark-Service-Instance': xxxxx
        }


    var options= {
        url: urlToHit,
        headers: headers,
        json: {xxxxxx}

          }
       request(options, callback);
}

【问题讨论】:

  • 错误是什么?总是发布错误
  • 有什么相关的吗? stackoverflow.com/questions/20089582/…
  • 这给了我一个内部服务器错误,没有太多描述。我不确定将 URL 参数设置为 true 的方式。
  • 发布服务器日志。 “由于某种原因”根本没有帮助。
  • 所以你想向/thisway?variable=true 发出一个帖子请求?

标签: angularjs node.js express server


【解决方案1】:

在发布帖子时,无需在路由帖子中添加查询字符串参数。主要用于app.get。您可以在发送的JSON 字符串数据中添加详细信息。然后您可以使用req.bodyreq.query 来获取该项目。但是你可以这样做:

 app.post('/thisway/:variable', function(req, res){

然后你使用req.param.variable检索参数

Good EXAMPLE

【讨论】:

  • 非常感谢 :) 但我面临的问题是别的,我已经更新了问题以更好地反映我的问题。给您带来的不便深表歉意
【解决方案2】:

您可以像在 urlToHit 中的示例中所示那样传递它。您不必在标题或选项中传递它。

var urlToHit = ENDPOINT.concat("?param1=true")

这应该使用所需的参数完成请求。因为即使你在进行 curl 调用,这也是你点击的端点,它也应该是相同的端点。

【讨论】:

    【解决方案3】:

    在您的 angularjs 中向 /thisway?variable=true 而不是 /thisway 发出发布请求,在您的路由器中您可以进行如下配置:

    app.post('/thisway', function(req, res){
        var variable = req.query.variable;
    
        if (variable) {
        //do something
        } else {
        //do something
        }
    });
    

    【讨论】:

    • 谢谢 :) 但我面临的问题是别的,我已经更新了问题以更好地反映我的问题。给您带来的不便深表歉意
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    相关资源
    最近更新 更多