Я следую: https://www.digitalocean.com/community/tutorials/getting-started-with-the-mern-stack.
Я хотел бы протестировать конечную точку API, созданную с помощью экспресс. Я хотел бы проверить POST.
Сервер узла работает, и я использую почтальона, чтобы проверить, работает ли конечная точка.
Я не понимаю, как форматировать данные сообщения, и мои запросы POST приводят к ошибкам при их отправке.
Мой API ниже:
const express = require ('express');
const router = express.Router();
const Todo = require('../models/todo');
router.get('/todos', (req, res, next) => {
//this will return all the data, exposing only the id and action field to the client
Todo.find({}, 'action')
.then(data => res.json(data))
.catch(next)
});
router.post('/todos', (req, res, next) => {
if(req.body.action){
Todo.create(req.body)
.then(data => res.json(data))
.catch(next)
}else {
res.json({
error: "The input field is empty"
})
}
});
router.delete('/todos/:id', (req, res, next) => {
Todo.findOneAndDelete({"_id": req.params.id})
.then(data => res.json(data))
.catch(next)
})
module.exports = router;
Моя схема выглядит следующим образом:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
//create schema for todo
const TodoSchema = new Schema({
action: {
type: String,
required: [true, 'The todo text field is required']
}
})
//create model for todo
const Todo = mongoose.model('todo', TodoSchema);
module.exports = Todo;
В Postman мой URL-адрес — http://localhost:5000/api/todos, и я добавляю тело с ключом в качестве действия и значением в виде asdf. При отправке получаю следующий результат:
{
"error": "The input field is empty"
}
Не могли бы вы сообщить мне, как отформатировать данные моего тела, чтобы я мог правильно проверить свою конечную точку POST?