JSON を POST リクエストするちょっとしたスクリプトが必要なとき Node.js はあまり使いませんでした
標準の http モジュールだと辛すぎで node-fetch などなにかのパッケージが必要になります
ちょっとしたスクリプトなのに npm のパッケージを入れるのはなんかなーと思うところがあります
zx も同様

ただ他にいい方法もあまりないんですよね
単純なリクエストなら curl ですが JSON を送るとなると面倒です
jq コマンドを使って複雑なことをしてる例を見ましたが これなら他の言語でいいかなと思います

結局ベストと言える方法もなかったのですが Node.js が 18 で標準で fetch が使えるようになりました
トップレベル await もあるのですごくシンプルにかけます

const [param1, param2] = process.argv.slice(2)
const data = { param1, param2 }
const res = await fetch("url", { headers: { "content-type": "application/json" }, body: JSON.stringify(data) })
const result = await res.json()

console.log(res.status, result)

node <ファイル名> foo bar



{ "param1": "foo", "param2": "bar" }

を送信できます

ただし トップレベル await は CJS だと使えません
ESM とするには package.json に type を書く必要があります
package.json も作りたくないところでは .mjs 拡張子にする必要がありこれが微妙です
いっそ deno という手もありますが 追加インストールしないといけないのがネックです
コンテナを使うならどっちでもいいですが それなら zx にしてしまう方がいいのかもとも思ったりです