即使使用body-parser

时间:2018-10-07 22:38:17

标签: javascript node.js mongodb

我只是简单地尝试发布到MongoDb数据库(我是Node.js的新手),并且能够将静态数据发布到我的数据库,但是由于某些原因,我无法尝试获取主体我的请求。它总是空的。

const express = require('express');
const router = express.Router();
const db = require('../db');

var bodyParser = require('body-parser');
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: true }));

router.get('/', (req, res) => {
    res.render('landing');
});

router.post("/addfan", (req, res) => {
    var newFan = new db.Fans(req.body);
    console.log(newFan);
    newFan.save()
        .then(item => {
            res.send('saved');
        })
    .catch(err => {
        res.status(400).send(err);
    })

});

module.exports = router;

我的html页面(实际上是EJS文件,但不重要)有一个文本框,该文本框与后表单中的'/ addfan'操作相连。对新手问题很抱歉,但我使用的是body解析器,已经查看了其他所有内容,无法让我的要求实体成为非空的。

2 个答案:

答案 0 :(得分:0)

所以我知道了。我不知道HTML字段的名称必须与MongoDB中JSON的模式完全一致。

答案 1 :(得分:0)

body-parser是应用程序级中间件。将“路由器”更改为“应用”:

app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())

Link to GitHub repository of body-parser