首页 > 解决方案 > 如何使用此应用程序进入 MongoDB?

问题描述

在我的应用程序和 Postman 之间,我应该能够进入 MongoDB,但我明白了。
TypeError: Cannot read property 'title' of undefined

这是app.js文件

const express = require('express');
const app = express();
const Mongoose = require('mongoose');
require('dotenv/config')
const postsRoute = require('./routes/posts');

app.use('/posts', postsRoute)

app.use('/posts', () => {
    console.log('This is a middleware.')
})

app.get('/', (req, res) => {
    res.send('We are at home')
})

//Connect to DB
Mongoose.connect(process.env.DB_CONNECTION)
.then(() => {
    console.log('connected to DB')
})
.catch(err => {
    console.log(err);
});


app.listen(3000);

这是posts.js文件

const express = require('express');
const router = express.Router();
const Post = require('../models/Post')
var fs = require('fs');

router.get('/', (req, res) => {
    res.send('We are at posts')
})

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({message: err });
        })
});

module.exports = router;

这个文件是 Mongoose Schema

const { json } = require('body-parser');
const mongoose = require('mongoose');


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

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

然后我试图通过邮递员的应用程序发布到 MongoDB 希望这张照片就足够了。

邮差

该应用程序在本地端口 3000 上运行良好,我相信我正在连接到数据库。好像是格式问题。我不知道架构是否需要以某种方式使用 JSON 或 Postman 的配置需要更改,但我已经尝试了每个 Postman 设置并尝试将架构更改为 JSON。我也有猫鼬文件中的类型type: String

标签: node.jsmongodbexpress

解决方案


将此添加到app.jsPOST 请求中...

app.use(express.json());

app.use(express.urlencoded({ extended: false }));

将该中间件添加到您的路由之上。


推荐阅读