【问题标题】:Nested Arrays losing formatting when posted to MongoDB嵌套数组在发布到 MongoDB 时会丢失格式
【发布时间】:2016-09-14 19:19:32
【问题描述】:

我正在使用 Node MongoDB 和 Express。我从 API 调用接收 JSON 并尝试将其传递给我的数据库。它正在进入数据库,但任何嵌套数组都失去了它们的结构并变成了一种结构,例如..

    "nutritionEstimates[0][attribute]" : "FAT_KCAL",
    "nutritionEstimates[0][description]" : "",
    "nutritionEstimates[0][value]" : "310",
    "nutritionEstimates[0][unit][id]" : "fea252f8-9888-4365-b005-e2c63ed3a776",
    "nutritionEstimates[0][unit][name]" : "calorie",
    "nutritionEstimates[0][unit][abbreviation]" : "kcal",
    "nutritionEstimates[0][unit][plural]" : "calories",
    "nutritionEstimates[0][unit][pluralAbbreviation]" : "kcal",
    "nutritionEstimates[0][unit][decimal]" : "true",
    "nutritionEstimates[1][attribute]" : "CAFFN",
    "nutritionEstimates[1][description]" : "Caffeine",
    "nutritionEstimates[1][value]" : "0.03",
    "nutritionEstimates[1][unit][id]" : "12485d26-6e69-102c-9a8a-0030485841f8",
    "nutritionEstimates[1][unit][name]" : "gram",
    "nutritionEstimates[1][unit][abbreviation]" : "g",
    "nutritionEstimates[1][unit][plural]" : "grams",
    "nutritionEstimates[1][unit][pluralAbbreviation]" : "grams",
    "nutritionEstimates[1][unit][decimal]" : "true",

我不知道具体是什么原因造成的,但我怀疑可能是僧侣试图格式化 JSON,如果我尝试将其作为字符串传递,它根本不会传递数据。我的一些代码供参考。应用 ID 和密钥已删除。

function saveRecipe(event){
  event.preventDefault();
  var recipeUrl = 'http://api.yummly.com/v1/api/recipe/' + this.value + '?_app_id=&_app_key=';
  var json = $.getJSON(recipeUrl, function (data){
  console.log(JSON.stringify(data)); 
   $.ajax({
       type: 'POST',
       data: data,
       url: '/saverecipe',
       dataType: 'JSON'
   });
 });
};

我的 app.js 的开始

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/favorite-recipes')

var routes = require('./routes/index');

var app = express();

感谢任何人提供的任何见解。

【问题讨论】:

    标签: json node.js mongodb express


    【解决方案1】:

    原来它是一个 bodyParser 选项“扩展”。它被设置为 false 并且不允许复杂的对象。删除此选项可解决所有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 1970-01-01
      相关资源
      最近更新 更多