node.js - 如何使用此应用程序进入 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
解决方案
将此添加到app.js
POST 请求中...
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
将该中间件添加到您的路由之上。
推荐阅读
- symfony - Symfony 路线。无法设置注释
- bash - Bash 比较值
- ckeditor - #9073 ImageUpload 回调不能跨域调用 CKEditor
- r - 如何在 R 中提取两列数据
- roblox - Roblox 中的排行榜类而不是 KO
- javascript - 组合html文档时JavaScript计算输出错误(html干扰?)
- r - overlay() 函数中的错误,用 R 中的栅格和数值计算
- javascript - 数组架构上的 Node.js RESTful API 验证错误
- typescript - 语法高亮适用于 gvim(vim 的 GUI 版本)但不适用于 vim(基于终端的 vim)
- matlab - 如何避免 parfor 循环中的变量广播?