Как избежать переупорядочения таблицы после обновления одной из ее записей?

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

exports.update = function(req, res, next) {                             // actualiza la lectura del contador
    req.lectura.lectura_actual = req.body.lectura.lectura_actual;
    req.lectura.texto = req.body.lectura.texto;

    req.lectura.save({fields: ["lectura_actual", "texto"]})
        .then(function() {res.redirect('/partes/' + req.params.parteId);})
        .catch(function(error) {next(error)});


};

Мне нужно, чтобы «чтение» было сохранено в том же порядке, в котором оно отображается, но, как я уже говорил, оно переносится в конец таблицы.

0
задан 15.01.2017, 21:56
0 ответов

Большинство механизмов баз данных не гарантирует специфического порядка, эти приказывают из-за решения соответствующего механизма, чтобы они хотели, чтобы гарантировать консистенцию данных. С другой стороны, порядок неуместный, потому что, в твоем администраторе, ты можешь упорядочивать из-за любой колонны.

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

return Modelo.findAll({
  order: '<campo> <orientación>'
});

Где:

  • поле - поле модели (не колонны)
  • ориентация ориентация аккуратного (ASC/DESC)

Мой другой вопрос: Почему ты используешь middleware, чтобы обновлять? Имей в виду, что, middleware подумался навсегда работать до того, как работала функция, ассоциируемая с маршрутом в специфическом средстве, так что, этот middleware будет выполнен многообразные разы, что делает ненужные операции. Это должен бы быть нормальный маршрут:

app.put('/:id', (request, response) => {
  let id = request.params.id;
  // actualizar
});

Если твое намерение состоит в том, чтобы делать, что lectura будьте объектом, имеемым через всех клиентов, тогда ты можешь герметизировать в корпусе вышеупомянутый объект в модуле и изменять это.

/* shared/reading.js */
const lectura = /* valor inicial */;

const LecturaHandler = () => {
  return {
    get () { return lectura; },
    update ({ lectura_actual, texto }, cb) {
      lectura.lectura_actual = lectura_actual;
      lectura.texto = texto;
      return lectura.save();
    }
  };
}

const instance = LecturaHandler();
Object.freeze(instance);
export default instance;

И ты обновил бы так:

const LecturaHandler = require('./shared/reading.js');

app.put('/:id', (req, res) => {
  LecturaHandler.update(req.body, (promise) => {
    promise
      .then(lectura => {
        res.redirect(`/partes/${req.params.parteId}`);
      })
      .catch(err => res.jsonp(err.errors));
  });
});
2
ответ дан 03.12.2019, 17:40

Теги

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