【问题标题】:AssertionError [ERR_ASSERTION]: Missing where attribute in the options parameterAssertionError [ERR_ASSERTION]:选项参数中缺少 where 属性
【发布时间】:2018-04-24 21:01:12
【问题描述】:

我正在尝试更新我的数据库,它没有给出任何错误,但它没有在数据库中更新

正在执行(默认):SELECT id, title, slug, content, sorting, createdAt, updatedAt FROM Pages AS @9876543430@ WHERE @9876。 987654331@ = '52';

正在执行(默认):SELECT id, title, slug, content, sorting, createdAt, updatedAt FROM Pages AS @9876543440@ WHERE @9876。 987654342@ = 'about-uss';

我的模型名称是 Page,当我尝试进入“编辑”表单时,我正在打印这些值,并且一切正常

谢谢

        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);
                })
            }
            });

【问题讨论】:

    标签: node.js express sequelize.js


    【解决方案1】:

    当您更新任何模型时,您应该有一个适当的设置值作为键值对,就像您定义条件一样。如果您的目的是更新多个,则必须将可选的 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) {} ) 
    

    【讨论】:

    • 当我尝试执行 res.json(page) 时,它返回了这个值 [0] 这是我的代码的链接
    • stackoverflow.com/questions/50011964/… 这是我根据你更新的代码
    • 嗨,我认为你必须先做两件事。首先在您的数据库中执行行查询并检查更新操作是否正常工作。例如:更新 Page_table set title='a', slug='b', content ='c' where id=1。其次,请记录您的所有请求。身体和要求。参数值并检查其中的任何内容变为空或空。您能否评论一下 req.param.id,req。身体。标题等值在这里?
    【解决方案2】:

    要一次更新所有行,请提供一个带有空对象的where。 在这里查看答案:https://stackoverflow.com/a/55388332/7668448

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-30
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 2014-12-22
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多