首页 > 解决方案 > 使用 JSON 进行 POST 请求时出错

问题描述

这是我的 server.js 文件代码。我正在尝试将 JSON 内容推送到用户对象中,但出现以下错误。请告诉我哪里出错了

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"));

我在 VS 代码中使用了一个名为 REST 客户端的扩展。

GET http: //localhost:3000/users

#####

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

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

当我发出 POST 请求时,它显示错误 - 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)

标签: javascriptnode.jsjsonexpressweb

解决方案


用户变量可能有问题。你能检查一下吗:

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

更新

我试过了:

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

结果如下:

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

所以这可能是请求数据的问题。


推荐阅读