Express js bodyparser post req.body не работает?

Я пытаюсь создать API с экспресс-запросом JS. Я использую body-parser для req.body . Но после отправки почтового запроса я не мог загрузить сообщение, а затем показать тайм-аут. где моя проблема, пожалуйста, посмотрите мой код. Я тестирую его у почтальона и использую в приложении /json типа содержимого заголовка.

const express = require('express');
const bodyParser = require('body-parser');
const config = require('./config/config.js').get(process.env.NODE_ENV);
const mongoose = require('mongoose');
const app = express();
mongoose.connect(config.DATABASE)
const {Book} = require('./models/book')

app.use(bodyParser.json())

// Post Book
app.post('api/book', (req,res)=>{
    let book = new Book(req.body)

    book.save((err, doc)=>{
        if (err) return res.status(400).send(err);
        res.status(200).json({
            post:true,
            bookId: doc._id
        })
    })
})

Теперь отображается ошибка - невозможно опубликовать /api/book но когда я пытаюсь использовать этот код ниже, он работает -

const book = new Book({ name: 'Zildjian' });
book.save().then(() => console.info('data save'));

Не могли бы вы показать свою схему и req.body ?

Moad Ennagi 07.04.2019 23:02

какая у тебя cookieParser, напиши

1565986223 08.04.2019 05:17

я удаляю cookieParser. но все равно ошибка. Пожалуйста, проверьте мой обновленный вопрос. Спасибо

Romi 08.04.2019 09:39
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
485
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените свой маршрут с api/book на /api/book - добавьте ведущий /.

Кроме того, похоже, что время ожидания истекло, поскольку оно не может передать ваше промежуточное ПО куки-парсер.

Вы прошли функцию:

app.use(cookieParser)

... но вам нужно вызвать его:

app.use(cookieParser())

Вам также нужно будет импортировать его:

const cookieParser = require('cookie-parser')

... или просто удалите его полностью, если он вам не нужен.

Надеюсь, это поможет.

я удаляю cookieParser. но все равно ошибка. пожалуйста, проверьте мой обновленный вопрос. Спасибо

Romi 08.04.2019 09:40

Попробуйте изменить маршрут с api/book на /api/book (добавить впереди /).

Steve Holgado 08.04.2019 11:00

Другие вопросы по теме