节点 - 中间件req.param嵌套json解析问题

时间:2017-01-22 19:15:00

标签: arrays json node.js parsing nested

我不确定我是否传回一个正确形成的JSON数组来做我想做的事情。我试图解析它失败了所以我想我会在这里问。

{"email":"myemail@email.com","teamname":"Team1","team":"[object Object],[object Object],[object Object]"}

我似乎无法JSON.stringify(req.params.team)

undefined

对于JSON.Stringify(req.params.team [0])我得到了

undefined

或者有时我会

 "["

我可以在发回之前看到DOM中的数据。看起来不错。我是否已经发回了一个形成错误的参数,或者我是否有某种方法可以将这些JSON数据分解为团队内容,以便我可以正确地插入到我的数据库中?任何帮助将不胜感激。在一个漫长的周末,如果可能的话,想要完成这个插入。谢谢!

****** ******解决

我忘了使用我的身体解析器并且没有发送帖子。我将我的fetch切换到了一个获取帖子(我在前端使用REACT)。这是有效的。谢谢@Avi

      fetch(`/team/`,{
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    email: this.context.user.email,
    teamName: this.state.value,
    team: this.state.selected,
  })
})

我的中间件(简化版)就是这样,我可以看到我得到了什么。

app.post('/eventerteam/', function (req, res) {
console.log("MIDDLE::SUBMIT EVENT TEAM CALLED::email "+ (req.body.email)); 
console.log("MIDDLE::SUBMIT EVENT TEAM CALLED::teamName "+ (req.body.teamName)); 
console.log("MIDDLE::SUBMIT EVENT TEAM CALLED::team "+ JSON.stringify(req.body.team));    
 })

1 个答案:

答案 0 :(得分:2)

假设您发送了Content-type: application/json的POST请求 您应该使用body-parser中间件从请求中提取JSON对象,如下所示:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();
app.use(bodyParser.json());

app.post('/teams', function(req, res){
 var teamsObject = req.body;
});