req.body 在邮递员上运行时说未定义

Posted

技术标签:

【中文标题】req.body 在邮递员上运行时说未定义【英文标题】:req.body is saying undefined while running on postman 【发布时间】:2019-01-06 12:32:12 【问题描述】:
var express = require('express');
var mysql=require('mysql');
var bodyParser = require('body-parser');

var con=mysql.createConnection(
    host:"localhost",
    user:"root",
    password:"",
    database:"nodedb"
);

var app = express();
app.use(bodyParser.urlencoded(extended: false));
app.use(bodyParser.json());


app.post('/reg', function (req, res)      
    var name=req.body.user_name;
    console.log(name);

    con.query("SELECT * FROM users WHERE email = ?", [req.body.email],
    function(err,result)       
            if(result.length > 0)
            console.log('mail already exist');
            res.json('mail already exist');

            
        else
  con.query("INSERT INTO users (`name`,`email`,`contact`,`password`) VALUES (?,?,?,?) ",  [req.body.user_name,req.body.email,req.body.contact_no, req.body.user_password],
    function(err1,result1)
        if(err1)

        console.log('failed');  
        res.json(err1);
        
        else
            console.log('1 recoed inserted');   
            res.json(result1);

        

 )
        
)

req.body.user_name 在控制台中打印未定义,在邮递员上打印为空。它 正在网页上工作,但不在邮递员上。我现在该怎么办。我查看了许多网站,但没有得到答案。

【问题讨论】:

你试过记录请求吗,console.log(req,body); ? 我做了控制台(req.body)它正在打印空白 json 。 【参考方案1】:

您需要选择正确的标题内容类型:x-www-form-urlencoded

希望对你有帮助。

【讨论】:

我的口碑低于15,所以不会显示。我想你知道。 谢谢 t3__rry :)【参考方案2】:

在postman的正文中,确保你使用的是raw,并将Application类型设置为Application/json,然后你可以提及


  "user_name": "Your_name"    

【讨论】:

【参考方案3】:

您可能尚未初始化中间件以使用正文解析器。你可以这样做:

app.use(express.json()); 放入项目的入口点。

【讨论】:

以上是关于req.body 在邮递员上运行时说未定义的主要内容,如果未能解决你的问题,请参考以下文章

Graphql说未定义类型的验证错误

Req.body 在 node.js 中不可迭代

如何仅在循环(其中包含函数)完成时运行语句?

获取请求适用于邮递员,但适用于浏览器

如何在快递请求期间更改 req.body

带有反应的 FIrebase 登录