2016-09-14 38 views
0

我正在使用Node MongoDB和Express。我從API調用中收到JSON,並試圖將它傳遞給我的數據庫。它使得它的數據庫,但任何嵌套的數組正在失去它們的結構和正在變成一個結構,如..嵌套數組在發佈到MongoDB時丟失格式

"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(); 

我明白任何見解任何人都可以提供。

回答

0

原來這是一個bodyParser選項「擴展」。它被設置爲false,並且不允許複雜的對象。刪除此選項可解決所有問題。