Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何发布包含对象数组的数组? 上下文_Javascript_Node.js_Json_Express - Fatal编程技术网

Javascript 如何发布包含对象数组的数组? 上下文

Javascript 如何发布包含对象数组的数组? 上下文,javascript,node.js,json,express,Javascript,Node.js,Json,Express,我正在学习javascript,同时使用node.JS和express构建REST API。目前,我一直在尝试读取包含一个对象数组的对象数组。下面是我正在阅读的一个小例子 [ { "description":"hhhh", "goal":"yyyy", "goalDate":"12/5/2019", &qu

我正在学习javascript,同时使用node.JS和express构建REST API。目前,我一直在尝试读取包含一个对象数组的对象数组。下面是我正在阅读的一个小例子

[
    {
        "description":"hhhh",
        "goal":"yyyy",
        "goalDate":"12/5/2019",
        "mSubGoalArray":
            [
                {
                    "description":"yyyy",
                    "goal":"ggggg",
                    "goalDate":"12/4/2019",
                    "mSubGoalArray":[]
                }
            ]
    },
    {
        "description":"yy",
        "goal":"gg",
        "goalDate":"12/11/2019",
        "mSubGoalArray":
            [
            ]
    }
]
我试过什么 我已尝试将此->
bodyParser.urlencoded({extended:true})
设置为true,然后读取完整字符串。当我去显示通过邮递员读入的数据时,它会显示它已被读取和识别,但是它不能在控制台中显示,它会显示为
未定义

我还尝试模拟对象中包含的所有字段,一次只读取一个字段。然而,当我去与API交互时,我最终收到一个数组,在初始化之前说不能访问“目标”

goals.js

const express = require('express');
const router = express.Router();

//getting from the database
router.get('/', (req, res, next) => {
    
});

//posting to the database
router.post('/', (req, res, next) => {
    
    const Array = req.body.data;
    console.log(Array);
    
    /*const goal = [
        goal.description = req.body.description,
        goal.goal = req.body.goal,
        goal.goalDate = req.body.description,
        goal.mSubGoalArray = [
            mSubGoalArray.description = req.body.description,
            mSubGoalArray.goal = req.body.goal,
            mSubGoalArray.goalDate = req.body.description,
            mSubGoalArray.mSubGoalArray['null'],
        ]
    ];*/
    
    res.status(200).json({
        the: 'Updated goal'
    });
});

module.exports = router;
app.js

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

app.use(morgan('dev'));
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

const goalsRoutes = require('./api/routes/goals');
const loginRoutes = require('./api/routes/login');

app.use('/goals', goalsRoutes);
app.use('/login', loginRoutes);

module.exports = app;
问题:#
我知道bodyparser应该允许内部对象。如何显示读入JSON对象,以便确认已成功传输该对象?如何以另一种方式消除错误目标初始化错误。

应该做什么?[mSubGoalArray.description=…,…]不相关:不做
常量数组
。跟踪本机对象是自找麻烦的。即使有这样详细的描述,我对这个问题一点也不了解。你是如何满足post请求的?您希望如何处理对象数组?读取/处理对象数组后,您尝试执行什么操作?我知道你是Node.js的新手,所以我不担心语法错误。但不清楚你想做什么。
router.post('/', (req, res, next) => {

    const tab= req.body;
    console.log(Array);
tab.forEach(element=>{

//HERE WE ARE LOOPING ON THE FIRST ARRAY NOW YOU ACCESS TO THE DATA FOR EXAMPLE element.description element.goal and you can also loop inside this loop on the element.mSubGoalArray

})


    res.status(200).json({
        the: 'Updated goal'
    });
});