【问题标题】:Curling Express server is failing with multiple argumentsCurling Express 服务器因多个参数而失败
【发布时间】:2015-06-19 05:11:22
【问题描述】:

我正在尝试卷曲我的本地服务器以创建一条消息,但遇到了奇怪的错误。我可以很好地使用 curl 创建用户:

$curl --data userToken='awdawd' localhost:3000/usertoken
>>>created

但是当我尝试发布到 /messages 路由时,我得到以下信息:

$curl -data x="10"&y="10"&z="10"&message="hello"&userToken="mrTony" http://localhost:3000/messages

>>>[1] 26248
>>>[2] 26249
>>>[3] 26250
>>>[4] 26251
>>>-bash: http://localhost:3000/messages: No such file or directory
>>>[2]   Done                    y="10"
>>>[3]-  Done                    z="10"
>>>[4]+  Done                    message="hello"
>>>curl: (6) Could not resolve host: x=10

>>> [1]+  Exit 6                  curl -data x="10"

我认为可能存在内容类型问题,因此我尝试将内容类型包括为 application/json,但仍然遇到相同的错误。

这是我的快速服务器路由:

  //input: {userToken: string}
  router.post('/usertoken', function (req, res) {
    var token = req.body.userToken;
    models.createUser(token).then(
      util.resolvePOST.bind(this, req, res),
      util.rejectPOST.bind(this, req, res)
      );
  });

  //input: {x: float, y: float, z: float, message: string, userToken: string}
  router.post('/messages', function(req, res) {
    console.log('does not work', req.body);
    models.createMessage(req.body).then(
      util.resolvePOST.bind(this, req, res),
      util.rejectPOST.bind(this, req, res)
      );
  });

【问题讨论】:

    标签: node.js curl express


    【解决方案1】:

    只是为了跟进这里的两个正确答案,您应该能够使用反斜杠转义 & 号。

    $curl -data x="10"\&y="10"\&z="10"\&message="hello"\&userToken="mrTony" http://localhost:3000/messages
    

    【讨论】:

      【解决方案2】:

      您的行中的“&”使 linux 感到困惑。基本上,当您在命令行中使用它时,它会告诉它将该命令作为后台进程运行。

      您需要将所有内容都用引号引起来,您尝试过吗?:

      $curl -data 'x="10"&y="10"&z="10"&message="hello"&userToken="mrTony"' http://localhost:3000/messages
      

      【讨论】:

        【解决方案3】:

        问题不是你的 express 应用,而是你调用 curl 的方式。您的 shell 正在查看 & 并将其置于后台。因此,您需要确保它们都包含在引号内,以便 shell 不会处理它们。

        试试这个:

        curl "http://localhost:3000/messages?x=10&y=10&z=10&message=hello&userToken=mrTony"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-10-23
          • 1970-01-01
          • 1970-01-01
          • 2012-10-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多