Как разместить массив с массивом объектов внутри него? - PullRequest
0 голосов
/ 22 декабря 2019

КОНТЕКСТ

Я изучаю JavaScript при создании REST API с помощью node.JS и express. В настоящее время я застрял при попытке прочитать в моем массиве объектов, который содержит массив объектов. Ниже приведен небольшой пример того, что я читаю.

[
    {
        "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, а затем просто читать полностьюстрока. Когда я иду, чтобы отобразить данные, которые были прочитаны в VIA почтальоне, он показывает, что они были прочитаны и распознаны, однако они не могут быть отображены в консоли, они отображаются как undefined.

У меня также естьпопытался подражать всем полям, включенным в объект, и просто читать их по одному. Однако это компилируется, когда я иду к взаимодействию с API, я получаю массив, говорящий, что не может получить доступ к «цели» до инициализации.

goal.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, чтобы подтвердить, что я успешно передал объект? Как можно избавиться от ошибки инициализации цели, делая это другим способом.

1 Ответ

1 голос
/ 22 декабря 2019
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'
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...