Узел js: Каков наилучший способ отрисовки ошибки без рендеринга всей страницы? - PullRequest
0 голосов
/ 16 марта 2019

В моем приложении данные отображаются изначально при загрузке страницы, и на той же странице у меня есть модуль для добавления данных.Я пытаюсь проверить, являются ли некоторые поля пустыми при добавлении данных, и отобразить их на странице.

Что произошло, когда я рендерил страницу с ошибками при добавлении данных, те данные, которые были изначально загружены во время загрузки страницы, теряются, потому что я рендерил страницу с простой ошибкой, а не с целыми данными agai

API, который загружает данные во время загрузки страницы

router.get('/model', function(req, res, next) {

  var tvs = [];
  var refrigerators = [];
  var washingMachines = [];

  db.query("SELECT * FROM model", (error, results, fields) => {
    if(results) {
      for(var i=0; i<results.length; i++){

        if(results[i].category === 'refrigerator'){
          refrigerators.push({id: results[i].id, model: results[i].name});
        }
        else if(results[i].category === 'tv') {
          tvs.push({id: results[i].id, model: results[i].name});
        }
        else if(results[i].category === 'wm') {
          washingMachines.push({id: results[i].id, model: results[i].name});
        }
      }
      res.render("home/model", {refrigerators: refrigerators, tvs: tvs, washingMachines: washingMachines});
    }
    if(error) throw error;
  });
});

API, который проверяет ошибки (если они есть) во время добавления данных,

router.post('/add-model', function(req, res, next) {

  var model = req.body.modelName;
  var category = req.body.category;

  var errors = [];


  //check if any fields are empty
  if(!model) {
    errors.push({'error_message': 'Model name cannot be empty!'});
  } 
  else if(!category) {
    errors.push({'error_message': 'Category cannot be empty!'});
  }

  if(errors.length > 0){
    console.log("flow is coming here!");
    res.render('home/model', {errors: errors});
  } else {
    //check if model already exit
    res.end('it is working as expected!');
  }

});

Я не думаю, что было бы хорошо писать целую логикуснова внутри API, который добавляет модель (в этом случае).Что может быть лучшим способом визуализации страницы с ошибкой, не затрагивая ранее загруженные данные?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...