无法从Node.js中的发布请求读取req.body.any

时间:2018-11-10 10:41:58

标签: node.js express

无法读取通过邮递员传递的邮寄请求 代码:

const express = require('express');
const router = express.Router();
const passport = require('passport');
const jwt = require('jsonwebtoken');
const config = require('../config/database');
const User = require('../models/userscheme');

router.post('/register', (req, res, next) => {
let newUser = new User({
  name: req.body.name,
  username: req.body.username,
  email: req.body.email,
  password: req.body.password
});
console.log(newUser.name);

User.addUser(newUser, (err) =>{
  if(err){
      res.json({"success": false, "msg": "Failed to register user!"});
  }else{
      res.json({"success": true, "msg": "User Registered!"});
  }
});

});

cmder的结果:

undefined

我在这里做错了什么?请帮助

2 个答案:

答案 0 :(得分:0)

您是以原始数据还是x-www-form-urlencoded的形式发送数据?因为它们是不同的,并且取决于您如何在应用程序中配置bodyparser。

在您的app.js文件中

const express = require('express'),
      app = express(),
      bodyParser = require('body-parser');

// support parsing of application/json type post data
app.use(bodyParser.json());

//support parsing of application/x-www-form-urlencoded post data
app.use(bodyParser.urlencoded({ extended: true }));

答案 1 :(得分:0)

尝试先解析req,然后使用req.body(任何在body之下的东西)。 对于解析,您可以使用JSON.parse()。

关注How to parse json using node js for more clarification