@hollanditkzn

Как сделать добавление значении в массив map?

У меня есть данные которые я получил от mysql. Это тесты, я получил все вопросы и нужно их в массив загнать все полученные по выборке значение. И хочу все ответы переместить в массив.
Чтобы все это показать
const Router = require('koa-router'),
    Test = require('./model/test'),
    router = new Router();
router.get('/testing/:id', async ctx => {
        let theme = await Test.theme(ctx.params.id);
        let test = await Test.test(ctx.params.id);
        let answearArr = test.map(item => {
            Test.answear(item.id);
        });
        console.log(answearArr);
    })

Получаю массив вот такой
[ undefined, undefined, undefined ]
Внутри item находится следующий массив
RowDataPacket {
  id: 1,
  name: 'Первый вопрос',
  id_theme: 1 }
RowDataPacket {
  id: 2,
  name: 'Второй вопрос?',
  id_theme: 1 }
RowDataPacket {
  id: 4,
  name: 'Третий вопрос',
  id_theme: 1 }

Чтобы понимаю что находится в переменной
Test
const db = require('../bin/db');

let Test = {
    test: function(id){
        return requestTest('SELECT * FROM questions WHERE id_theme = ?', id);
    },
    answear: function(id){
        return requestTest('SELECT * FROM answers WHERE id_question = ?', id);
    },
    theme: function(id){
        return requestTest('SELECT name FROM thema WHERE id = ?', id);
    }
};

function requestTest(sql, req) {
    return new Promise((resolve, reject) => {
        db.query(
            sql,
            [req],
            (err, rows) => {
                if(err) reject(err);
                resolve(rows);
            });
    }).then(rows => {return rows;});
}

module.exports = Test;
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Bhudh
Бросается в глаза, что методы theme и test вызываются с await, а answear без него.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы