Tan_R
Tan_R

Reputation: 27

Getting error while POST request with JSON

This is my server.js file code . I am trying to push the JSON content in the user object , but i am getting following error. Please tell me where i am going wrong.

const express = require('express')
const app = express()
const bcrypt = require('bcrypt')
const bodyParser = require('body-parser')
app.use(express.json())
const users = []

app.get('/users', (req, res) => {
  JSON.stringify(users)
  res.json(users)
})

app.post('/users', (req, res) => {
  const user = {
    name: req.body.name,
    password: req.body.password
  }
  users.push(user)
  res.status(201).send()
})

app.listen(3000, console.log("server started"));

I used an extension in VS code called REST client.

GET http: //localhost:3000/users

#####

POST http: //localhost:3000/users
Content-Type: application/json

{
  "name": "Tanay",
  "password": "password"
}

When I'm firing POST request it shows the error - SyntaxError: Unexpected end of JSON input

at JSON.parse (<anonymous>)
at parse (C:\Users\TANAY RAJ\Desktop\nodePassport\Wsimplified\node_modules\body-parser\lib\types\json.js:89:19)
at C:\Users\TANAY RAJ\Desktop\nodePassport\Wsimplified\node_modules\body-parser\lib\read.js:121:18
at invokeCallback (C:\Users\TANAY RAJ\Desktop\nodePassport\Wsimplified\node_modules\raw-body\index.js:224:16)
at done (C:\Users\TANAY RAJ\Desktop\nodePassport\Wsimplified\node_modules\raw-body\index.js:213:7)
at IncomingMessage.onEnd (C:\Users\TANAY RAJ\Desktop\nodePassport\Wsimplified\node_modules\raw-body\index.js:273:7)
at IncomingMessage.emit (events.js:322:22)
at endReadableNT (_stream_readable.js:1187:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)

Upvotes: 1

Views: 1561

Answers (1)

Deshan Koswatte
Deshan Koswatte

Reputation: 138

Can be something wrong with the user variable. Can you check this:

const user={'name':req.body.name,'password':req.body.password}

Update

I tried out:

var data = [];
const user={'name':"Deshan",'password':"password"}
data.push(user);
console.log(data);

And the result was as follow:

[ { name: 'Deshan', password: 'password' } ]

So it maybe a problem with the request data.

Upvotes: 1

Related Questions