Html 发出Post请求,但MongoDB中仅显示对象id

Html 发出Post请求,但MongoDB中仅显示对象id,html,node.js,mongodb,express,mongoose,Html,Node.js,Mongodb,Express,Mongoose,请我有一个在我的html文件如下联系形式 <form action="/contact" method="post"> <input type="text" name="name" id="" placeholder="Name"> <input type="email" name="email" id="" placeholder="Your Email">

请我有一个在我的html文件如下联系形式

<form action="/contact" method="post">
                    <input type="text" name="name" id="" placeholder="Name">
                    <input type="email" name="email" id="" placeholder="Your Email">
                    <textarea name="message" id="" cols="30" rows="10" placeholder="Your Message</textarea>
                    <button type="submit" id="form_btn">Submit</button>
                </form>
我的服务器中也有此代码

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const cors = require('cors');
const path = require('path');
const app = express();

// Middlewares
require('dotenv/config');
app.use(bodyParser.json());
app.use(cors());

// Import routes
const contactRoute = require('./contact');
app.use('/contact', contactRoute);

// Serving static folder
app.use(express.static(path.join(__dirname, '../public'))); 

// Connect to DB
mongoose.connect( 
    process.env.DB_CONNECTION, 
    {  useNewUrlParser: true ,
       useUnifiedTopology: true, 
    },
    () => console.log('Connected to DB')
);

const port = process.env.PORT || 9900;
app.listen(port, () => console.log(`server started on port ${port}`));
问题是,如果我单击底部发出post请求,则会发出post请求,但在我的MongoDB数据库中,只有object_id显示为


{ “_id”:“5e19d5e39134760ad4b2e9e1”, “_v”:0 }


很奇怪,名字、电子邮件和消息都不包括在内,这意味着当我向邮递员发出发帖请求时,所有字段都显示为


{ “_id”:“5e16f824b1074516901951d7”, “名称”:“Kwame Asare Boahen”, “电子邮件”:Kwame@gamil.com", “留言”:“你好,已经很久了”, “_v”:0 }



请各位,是什么原因造成的?我正在尝试其他方法来解决这个问题,但对我来说不起作用。

它与postman一起工作,因为您发送的是json,但发送的是表单 编码的数据,所以您只需要多一个中间件

app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.urlencoded({ extended: false }))