Экспресс не распознает правильное тело запроса от Почтальона по запросу PUT - PullRequest
0 голосов
/ 21 февраля 2019

Я работаю над чрезвычайно простым бэкэндом CRUD с использованием Express и MongoDB.У него даже нет внешнего интерфейса, и я просто использую Postman, чтобы убедиться, что каждый запрос работает должным образом.Вот как выглядит мое одностраничное приложение:

server.js

const express = require('express')
const bodyParser = require('body-parser')
const MongoClient = require('mongodb').MongoClient

let ObjectId = require('mongodb').ObjectId;

const app = express()
const uri = 'mongodb+srv://<USER>:<PW>@<REDACTED>.mongodb.net/test?retryWrites=true'

let db

MongoClient.connect(uri, { useNewUrlParser: true }, (err, client) => {
  if (err) return console.log(err)
  db = client.db(<COLLECTION_NAME>)
    app.listen(3000, () => {
      console.log('Listening on port 3000')
    })
})

app.put('/todo', (req, res) => {
   db.collection('todo').updateOne({_id: 
      ObjectId(req.body.id)}, {
       $set: {item: req.body.value}
   }, (err, result) => {
        if (err) return console.log(err)
        res.send('Todo updated')
   })
})

Я уже заполнил коллекцию своего кластера в MongoDB Atlas с помощью POSTзапрос (не показан), который работает.Вот что я пробовал в Postman после локального запуска сервера:

enter image description here

enter image description here

Идентификатор существующего Todo четко определен в кластере Atlas, но когда я записываю значение req.body.value в первой строке функции обратного вызова запроса PUT в server.js, оно показывает существующее значение, котороев Todo в этом кластере, а не то, что на самом деле поставляется через Почтальон.Почему тело запроса от Почтальона не распознается по этому запросу?

1 Ответ

0 голосов
/ 21 февраля 2019

Этот пост был полезен для выяснения, что было не так.Мне нужно было импортировать промежуточное программное обеспечение bodyParser.json () и включить его в запрос PUT.Затем я использовал raw json в клиенте Postman для успешной отправки запросов PUT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...