AssertionError [ERR_ASSERTION]: отсутствует атрибут Где в параметре параметров - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь обновить свою базу данных, поскольку она не выдает никакой ошибки, но она не обновляется в базе данных

Выполнение (по умолчанию): SELECT id, title, slug, content,sorting, createdAt, updatedAt ОТ Pages КАК Page ГДЕ Page. id = '52';

Выполнение (по умолчанию): ВЫБРАТЬ id, title, slug, content, sorting, createdAt, updatedAt ОТ Pages КАК Page ГДЕ Page. id = 'about-uss';

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

Спасибо

        var where={
            id:req.params.id
        };
        var values={
            title,slug,content

        };
        var errors = req.validationErrors();

        if (errors) {
            res.render('admin/edit_page', {
                errors: errors,
                title: title,
                slug: slug,
                content: content,
                id:id
            });
        } else {
            // models.Page.find({
            //     where: {
            //         id:req.params.id
            //     }         
            // })
            // .then(function(page){
            //     if(Page){
                models.Page.update(values,where)
                .then(function(){
                    title=req.body.title,
                    slug=req.body.slug,
                    content=req.body.content
                })
                .then(function(page){
                    res.render('admin/pages');
                })
                .catch(function(err){
                    console.log(err);
                })
            }
            });

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Чтобы обновить все строки одновременно, укажите where с пустым объектом. Проверьте ответ здесь: https://stackoverflow.com/a/55388332/7668448

0 голосов
/ 25 апреля 2018

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

var values = {title: 'some title' , content : 'P' };
var condition = { where :{id: 2} }; 
options = { multi: true };

models.Page.update(values, condition , options)
. then(function(upresult) {} ) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...