Почему функция сохранения в express не работает? - PullRequest
0 голосов
/ 19 января 2020

Это мой первый день в express. Я пытался создать простой маршрут, но моя функция сохранения не работает. Я пытался просмотреть похожие вопросы, размещенные на stackoverflow, но не смог этого сделать. Любая помощь будет оценена.

const express = require("express");
const router = express.Router();
const Post = require("../models/Post");

//ROUTES

router.post('/', (req, res) => {
    const post = new Post({
        title: req.body.title,
        description: req.body.description
    })

    post.save()
    .then(data => {
        res.json(data);
    })
    .catch(err => {
        res.json(err);
    }); 


});

module.exports = router; 

А вот и моя модель.

const mongoose = require("mongoose");

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

module.exports = mongoose.model('Posts',PostSchema);

приложение. js код

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
require("dotenv/config");


//IMPORT ROUTES
const postsRoute = require("./routes/posts");

//MIDDLEWARE - Function that always execute when routes are being hit.
app.use(bodyParser.json())
app.use('/posts', postsRoute)
//app.use('/users', usersRoute)

//ROUTES
app.get('/', (req, res) => {
    res.send("We are on home");
});

//CONNECT TO DB
mongoose.connect(
process.env.DB_CONNECTION, 
{ useNewUrlParser: true },
() => {
    console.log("DB Connected!!")
})

//How do we start listening to the server
app.listen(3000);

Мой запрос почтальона - My Postman query screenshot

Ответ почтальона - enter image description here

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

1 Ответ

0 голосов
/ 19 января 2020

ваш app.js должен быть:

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
require("dotenv/config");


//MIDDLEWARE - Function that always execute when routes are being hit.
app.use(bodyParser.json())


   mongoose.connect(process.env.DB_CONNECTION, {  useNewUrlParser: true }, function(err) {
    if (err) {
        console.error('System could not connect to mongo server')
        console.log(err)
        process.exit()
    } else {
        console.log('System connected to mongo server')
    }
});


//ROUTES
app.get('/', (req, res) => {
    res.send("We are on home");
});

//IMPORT ROUTES
const postsRoute = require("./routes/posts");

app.use('/posts', postsRoute)


app.listen(3000);

также добавьте консольный журнал в роутер для проверки req.body:

router.post('/', (req, res) => {
    console.log('req.body===',req.body);
    ...
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...