У меня Node.js приложение. Когда я пытаюсь POST
curl -X POST -H "Content-Type: application/json" -d "{"name":"richard","email":"ricard@rublev.co" }" http://localhost:3000/collections/curl-test
, я получаю ошибку
<body>
<pre>SyntaxError: Unexpected token n in JSON at position 1<br> at JSON.parse (<anonymous>)<br> at parse (/home/miki/amardan/ch8/newrest/node_modules/body-parser/lib/types/json.js:89:19)
Если я добавлю -d -d
[1/2]: name:'richard' --> <stdout>
--_curl_--name:'richard'
curl: (3) URL using bad/illegal format or missing URL
[2/2]: email:'ricard@rublev.co' --> <stdout>
--_curl_--email:'ricard@rublev.co'
curl: (6) Could not resolve host: rublev.co'
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
Ошибка
SyntaxError: Unexpected token - in JSON at position 0
at JSON.parse (<anonymous>)
at createStrictSyntaxError (/home/miki/amardan/ch8/newrest/node_modules/body-parser/lib/types/json.js:158:10)
at parse (/home/miki/amardan/ch8/newrest/node_modules/body-parser/lib/types/json.js:83:15)
at /home/miki/amardan/ch8/newrest/node_modules/body-parser/lib/read.js:121:18
at invokeCallback (/home/miki/amardan/ch8/newrest/node_modules/raw-body/index.js:224:16)
at done (/home/miki/amardan/ch8/newrest/node_modules/raw-body/index.js:213:7)
Если я go для text/html
, тогда я получил
[{"_id":"5e9bf713bcea0e49314ed4f7"}]
Localhost output
::ffff:127.0.0.1 - - [Sun, 19 Apr 2020 07:04:09 GMT] "POST /collections/curl-test HTTP/1.1" 200 36 "-" "curl/7.65.3"
Я на Ubuntu 18.04. Я добавлю несколько строк из моего индекса. js. Вот где запускается body-parser
const app = express()
app.use(bodyParser.json())
app.param('collectionName', (req, res, next, collectionName) => {
req.collection = db.collection(collectionName)
return next()
})
app.post('/collections/:collectionName', (req, res, next) => {
// TODO: Validate req.body
req.collection.insert(req.body, {}, (e, results) => {
if (e) return next(e)
res.send(results.ops)
})
})
Как решить эту проблему?