Не могу опубликовать данные, хотя это работало вчера - PullRequest
0 голосов
/ 05 июля 2019

Вчера я сделал простой API, просто для тестирования. Там я мог сделать все, получить, опубликовать, удалить и исправить. Но сегодня я могу только получить и удалить. Когда я хочу сделать сообщение, я получаю сообщение об ошибке и не понимаю его, потому что вчера все работало нормально.

Сообщения

Пост 1

Вот мой пост:

router.post('/', async (req, res) => {
    const post = new Post({
        title: req.body.title,
        description: req.body.description
    });
    try {
        const savedPost = await post.save();
        res.json(savedPost);
    } catch (err) {
        res.json({
            message: err
        });
    }
});

Пост 2

Я сделал еще один пост, но это тоже не работает:

router.post('/', (req, res) => {
    const postData = {
        title: req.body.title,
        description: req.body.description
    }
    Post.findOne({
        title: req.body.title,
        description: req.body.description
    })
    .then(post => {
        if (!post) {
            Post.create(postData);
            res.json(postData);
        }
    })
    .catch(err => {
        res.send(err);
    })
})

Error

Вот ошибка, которую я получаю:

TypeError: Cannot read property 'title' of undefined
    at router.post (D:\Sonstiges\VUE_JS\rest_api\routes\posts.js:35:25)
    at Layer.handle [as handle_request] (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\layer.js:95:5)
    at next (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\layer.js:95:5)
    at D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\index.js:335:12)
    at next (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\index.js:174:3)
    at router (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\index.js:47:12)
    at Layer.handle [as handle_request] (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\index.js:317:13)
    at D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\index.js:335:12)
    at next (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\router\index.js:275:10)
    at expressInit (D:\Sonstiges\VUE_JS\rest_api\node_modules\express\lib\middleware\init.js:40:5)

Схема

Так что это говорит, что название не определено. В моей модели я определил ее как строку:

const PostSchema = mongoose.Schema({
    title: {
        type: String,
        required: true
    },
    description: {
        type: String,
        required: true
    },
    date: {
        type: Date,
        default: Date.now
    }
});

Почтальон

В почтальоне я создаю сообщение с необработанным телом и типом JSON (application / json):

{
    "title": "test",
    "description": "this is a test"
}

Как я могу определить заголовок?

EDIT

Существует аналогичный вопрос в Stackoverflow. Я попробовал это решение, но у меня оно не сработало.

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