首页 > 解决方案 > 当我在邮递员(节点js)中使用post raw时发布空

问题描述

我有一个 api 应该接收数据以保存在数据库中,但是当我调用 put 方法时,我的 req.body.nome 返回空,但是当我使用 form-urlencoded 时它的工作。我尝试使用正文解析器,但不推荐使用正文解析器。

我的要求 在此处输入图像描述

我的代码

//my server
const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')

const app = express();
var corsOptions = {
    origin: 'http://localhost:8001'
};

app.use(cors(corsOptions));

app.use(express.json());
app.use(express.raw())

...

//routers
module.exports = app => {
    const conta = require('../controllers/createCount');
    var router = require('express').Router();

    router.post('/teste', conta.createCount)
    
    app.use('/api', router)
}
// my controller
exports.createCount = (req, res) =>{
    const conta = new Contas({
        Nome: req.body.nome,
        Valor: req.body.valor,
        Historico: req.body.historico,
        DataEmissao: req.body.dataEmissao,
        DataVencimento: req.body.dataVencimento
    });
    conta
        
        .save(conta)
        .then(data => {
            res.send(data)
            console.log(conta)
        })

 
}
 

标签: javascriptnode.jsexpress

解决方案


  1. 您已将正文设置为在 Postman 中键入“文本”,这将向Content-Type您的服务器发送不正确的标题 - 打开“GraphQL”单选按钮右侧的下拉菜单并将内容类型设置为“JSON”。

  2. 您发送的 JSON 无效 - 规范声明不允许使用单引号 - 您的键和值应封装在双引号中"

    {
        "nome": "Matheus"
    }
    

推荐阅读