Я создаю простое приложение со списком реагирования, которое использует express и mongoDB для обработки всех операций CRUD. Пока у меня есть GET, POST, DELETE, все работает отлично, но я не могу заставить работать PUT. Когда я пытаюсь выполнить запрос PUT через Insomnia, я получаю следующую ошибку «Ошибка: ошибка при получении данных от однорангового узла»
МОДЕЛИ
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const listItemSchema = new Schema({
itemname: { type: String, required: true, unique: true },
category: { type: String, required: true, unique: true },
}, {
timestamps: true,
});
const ListItem = mongoose.model('ListItem', listItemSchema);
module.exports = ListItem;
МАРШРУТЫ
const router = require('express').Router();
let ListItem = require('../models/list.model');
router.get('/', async (req, res) => {
try {
const list = await ListItem.find();
res.json(list);
} catch(err) {
console.error(err.message);
res.send(400).send('Server Error');
}
});
router.get('/:id', async (req, res) => {
try {
const item = await ListItem.findById(req.params.id);
res.json(item);
} catch(err) {
console.error(err.message);
res.send(400).send('Server Error');
}
});
router.post('/addlistitem', async (req, res) => {
try {
const { itemname, category } = await req.body;
const newListItem = new ListItem({
itemname,
category
});
await newListItem.save()
res.json('ListItem added!')
} catch(err) {
console.error(err.message);
res.status(500).json('Server Error');
}
});
router.delete('/:id', async (req, res) => {
try {
await ListItem.findByIdAndDelete(req.params.id);
res.json(' Item deleted.');
} catch(err) {
res.status(400).json('Error: ' + err);
}
});
router.put('/:id', async (req, res) => {
try {
await ListItem.findByIdAndUpdate(req.params.id, {
itemname: req.body.itemname,
category: req.body.category
});
} catch(err) {
console.error(err.message);
res.send(400).send('Server Error');
}
});
module.exports = router;