2017-09-02 12 views
1

コード原因カールとJSONペイロードを追加:エクスプレス - 解析エラー

const express = require('express') 
const bodyParser = require('body-parser') 

app = express() 
app.use(bodyParser.json()); 

app.post('/', function (req, res) 
{ 
    res.send("Ok") 
}) 

app.listen(7000) 

ワークス:

カール-X POSTするローカルホスト:7000/

が失敗:

Cmd:カール-H "コンテンツタイプ:アプリケーション/ JSON" -d { "日": "金曜日"}はlocalhost:7000/

エラー:にSyntaxError:位置1

でJSONに予期しないトークンD何か案は?

解像度:

問題私はWindows上でこれをやっていた事実によると思われます。次のコマンドが機能しました。

curl -H "Content-Type: application/json" -d {"""day""":"""Friday"""}localhost:7000/ 

curl -H "Content-Type: application/json" -d {\"day\":\"Friday\"} localhost:7000/ 

curl -H "Content-Type: application/json" -d "{\"day\":\"Friday\"}" localhost:7000/ 
+0

が重複する可能性を?](https://stackoverflow.com/questions/7172784/how-to-post-json-data-with-curl-from-terminal-commandline-to-test-spring-rest) – mscheker

答えて

0

cURLコマンドは、引用符と混同されます(最初の文字が "d"とどのように見えるかを参照)。あなたは、単一引用符でJSONデータをラップする必要があります。

curl -H "Content-Type: application/json" -d '{"day":"Friday"}' localhost:7000/ 

あなたはまた、引用符をエスケープすることができます:[ターミナル/コマンドラインからテスト春RESTにカールしてJSONデータをポストする方法の

curl -H "Content-Type: application/json" -d "{\"day\":\"Friday\"}" localhost:7000/ 
+0

ありがとうございました。私のWindowsセットアップでは、最初の提案は機能しません(私はそれを試みました)が、2番目の提案は機能します。それは外の引用を必要としますが。 – mgibson

+0

申し訳ありませんが、私は混乱しています。あなたはそれを修正できますか?ええ、2番目のものは二重引用符で囲む必要があります**と**は二重引用符をエスケープします。 – ishegg