zsh: 当 $ curl -s -X localhost:60702/api/bundle?name=light%20reading | 找不到匹配项时 jq'.'

wil*_*aba 2 node.js express elasticsearch

我正在阅读 Jim Wilson 的 Node.js The Right Way 一书。我目前正在尝试使用 PUSH 请求创建具有指定名称的新包。* curl -X POST http://:/api/bundle?name=

但是,当我使用命令时: $ curl -s -X POST localhost:60702/api/bundle?name=light%20reading | jq '.'

我得到的不是指示已创建 Bundle 的 JSON,而是: zsh: no matches found: localhost:60702/api/bundle?name=light%20reading

该命令应该使用 POST 请求来创建一个新的我的所有代码都与书中列出的代码完全相同。有任何想法吗?

sal*_*ico 24

这似乎是 zsh 解决的问题here

有几种方法可以解决这个问题:

  1. 你能逃脱问号吗?url中,按照@huzaifa-saifuddin的解释引用 url,以避免 zsh 将其视为通配符。

  2. 正如这里所解释的,您可以为curl创建一个别名:alias curl='noglob curl'

  3. 如此处所述,您可以通过将以下内容添加到~/.zshrc来禁用nomatch处理:unsetopt nomatch


Huz*_*din 13

你能试一下吗

curl -s -X POST 'localhost:3000/api/bundle?name=light%20reading'
Run Code Online (Sandbox Code Playgroud)

ie 将 url 包裹在 '