【问题标题】:(node:23424) UnhandledPromiseRejectionWarning: ReferenceError: body is not defined(node:23424) UnhandledPromiseRejectionWarning: ReferenceError: body is not defined
【发布时间】:2020-07-07 12:44:38
【问题描述】:

我在这里和 github 上阅读了太多答案,但我无法解决我的问题。这里是, 使用邮递员: POST --> http://localhost:3000/api/employees; headers: 内容类型 application/json

简单的json: { “城市”:“纽约”, “名字”:“约瑟夫” }

我在 node_modules 中安装了 body-parser

const bodyParser = require('body-parser');
app.set('port', process.env.PORT || 3000)  

app.use(express.json());
app.use(bodyParser.json({ type: 'application/*+json' }));

app.use(bodyParser.raw({ type: 'application/vnd.custom-type' }));

app.use(bodyParser.text({ type: 'text/html' }));

【问题讨论】:

标签: javascript node.js json express


【解决方案1】:
const express = require('express');
const morgan = require('morgan');
const cors = require('cors');

const app = express();

const { Mongoose } = require ('./database');

app.set('port', process.env.PORT || 3000);   

app.use(morgan('dev'));
app.use(express.json());

app.use('/api/employees', require('./routes/employee.routes'));

app.listen (app.get('port'), () => {
    console.log(`server on port ${app.get('port')}`);
}
)

【讨论】:

    【解决方案2】:

    谢谢你们。 这是请求后服务器中的响应:

    POST /api/employees - - ms - - (node:23604) UnhandledPromiseRejectionWarning: ReferenceError: body is not defined.

    这是第二次尝试:

    const express = require('express');
    const morgan = require('morgan');
    const cors = require('cors');
    
    const bodyParser = require('body-parser');
    const app = express();
    
    const { Mongoose } = require ('./database');
    
    app.set('port', process.env.PORT || 3000);   // Así luego se puede invocar "port", con el puerto que sea.
    
    app.use(morgan('dev'));
    
    app.use(bodyParser.json({ type: 'application/*+json' }));
    app.use(bodyParser.raw({ type: 'application/vnd.custom-type' }));
    app.use(bodyParser.text({ type: 'text/html' }));
    
    app.use('/api/employees', require('./routes/employee.routes'));
    
    
    app.listen (app.get('port'), () => {
        console.log(`server on port ${app.get('port')}, majete`);
    }
    )
    

    答案是:

    POST /api/employees - - ms - - (node:18328) UnhandledPromiseRejectionWarning: ReferenceError: body is not defined

    这是控制器:

    employeeCtrl.createEmployee = async (req, res) => {
        console.log(req, body);
        console.log("Estoy en crear employee");
        const employee = new Employee({
            name: req.body.name,
            position: req.body.position,
            office: req.body.office,
            salary: req.body.salary
        });
        await employee.save();
        res.json({ 'status': 'Employee saved' });
    };
    

    【讨论】:

      【解决方案3】:

      对不起,如果我没有很好地解释。 问题出在控制器中,当我制作一个简单的“console.log(req, body)”时

      【讨论】:

      • 有什么想法吗?它必须是微不足道的......我猜我找不到......
      【解决方案4】:

      终于明白了... 我有 2 个模块,index.js 和 controller.js。 需要在controller.js中声明变量

      const bodyParser = require ('body-parser');
      

      我在 index.js 和 controller.js 这两个模块中都有这个变量。现在它起作用了!

      【讨论】:

        猜你喜欢
        • 2019-11-10
        • 1970-01-01
        • 2020-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-03
        相关资源
        最近更新 更多