@Alex10214

Как запрашивать правильно данные в момент ngOnInit?

Приветствую, у меня такая проблема... В момент инициализации странички у меня идут запросы на сервер. Я использую express и sequelize. В я просмотрел курсы и вроде все ок. Но там не поясняли как делать множество запросов. Вот мой код:
Это роутер в котором вызываются функции getArrSelectDataType, getArrSelectTicker, getArrSelectSource
Как бы все ок. В данном случае у меня имеется одна функция get и две методом post.
const express = require('express');
const controller = require('../controllers/data_table')
const router = express.Router();

router.get('/', controller.getArrSelectDataType);
router.post('/', controller.getArrSelectTicker);
router.post('/', controller.getArrSelectSource);

module.exports = router;


Далее у меня сами функции..
const Data_table = require('../models/Data_table');
console.log('11ssssssssss')

module.exports.getArrSelectDataType = async (req, res) => {
  console.log('dddddddddddd')

  const group_name = await Data_table.findAll({
    attributes: ['group_name'],
    group: 'group_name'
  })
  const arrSimple = group_name.map(el => {
    return el.group_name
  });

  res.json({
    arrSimple
  })
}

module.exports.getArrSelectTicker = async (req, res) => {
  console.log('hhhhhhhhhhh')

  const value = await Data_table.findAll({
    attributes: ['value'],
    group: 'value'
  });
   const arrValue = value.map(el => {
     return el.value
   });
  res.json({
    arrValue
  })
}

module.exports.getArrSelectSource = async (req, res) => {
  console.log('eeeeeeeeeee')
  const source = await  Data_table.findAll({
    attributes: ['source'],
    group: 'source'
  })
  const arrSource = source.map(el => {
    return el
  });

  res.json({
    arrSource
  })
}

при таком раскладе у меня срабатывает функция getArrSelectDataType (методом get) и ДВА РАЗА срабатывает функция getArrSelectTicker (методом post) а следующая функция getArrSelectSource вовсе не срабатывает. А так понял это потому что у меня два раза сработала предыдущая функция. Я так понимаю что это может из-за метода POST. Но я не понимаю как мне вызвать обе функции. При чем мне нужно сделать так чтоб третья функция (getArrSelectSource ) могла еще раз вызваться по кнопке. Подскажите пожалуйста( Очень нужна помощь..
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
YuriyVorobyov1333
@YuriyVorobyov1333
Software Developer
У вас маршруты одинаковые:
router.get('/', controller.getArrSelectDataType);
router.post('/', controller.getArrSelectTicker);
router.post('/', controller.getArrSelectSource);

Как нода должна понять, куда ей делать post для контроллера getArrSelectTicker или post для контроллера getArrSelectSource?
Напишите маршруты правильно, например:
router.get('/get-arr-select-data-type', controller.getArrSelectDataType);
router.post('/get-arr-select-data-ticker', controller.getArrSelectTicker);
router.post('/get-arr-select-data-source', controller.getArrSelectSource);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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