首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在sequelize中更新多行

如何在sequelize中更新多行
EN

Stack Overflow用户
提问于 2019-11-28 12:18:57
回答 2查看 4.4K关注 0票数 0

我正在尝试使用Sequelize更新多个行。但是,它会给我一个错误。

代码语言:javascript
运行
复制
SequelizeValidationError","errors":
    [{"message":"id cannot be an array or an object",
        "type":"string violation",
        "path":"id",
        "value":["ord-307486d0-10cb-11ea-8174-9b8214c20c49","ord-ef0f0a80-10ca-11ea-8174-9b8214c20c49"],
        "origin":"CORE",
        "instance":{"id":["ord-307486d0-10cb-11ea-8174-9b8214c20c49","ord-ef0f0a80-10ca-11ea-8174-9b8214c20c49"],
        "status":"PAID",
        "updatedAt":"2019-11-28T03:47:38.057Z"},
        "validatorKey":"not_a_string",
        "validatorName":null,
        "validatorArgs":[]}]},
    "isUpdated":false

你能帮我弄清楚吗?我该怎么做呢?

这是我的代码:

代码语言:javascript
运行
复制
updateOrder: (orderData, vendorId, callback) => {

  models.Orders.update(orderData, {
      where: {
        id: orderData.id
      }
    })
    .then((result) => {

      if (result != '0') {
        logger.log({
          level: 'info',
          message: {
            user: vendorId,
            request: {
              orderData
            },
            response: {
              updated: true
            },
            service: 'updateOrder',
            date: date,
            type: 'UPDATE'
          }
        });
        callback({
          statusCode: Constants.errorStatus.SUCCESS,
          body: orderData,
          isUpdated: true
        });
      } else {
        logger.log({
          level: 'warn',
          message: {
            user: vendorId,
            request: {
              orderData
            },
            response: {
              updated: false,
              details: 'Id isnt found'
            },
            service: 'updateOrder',
            date: date,
            type: 'UPDATE'
          }
        });
        callback({
          statusCode: Constants.errorStatus.NOT_FOUND,
          body: 'Id is not matching',
          isUpdated: false
        });
      }

    }).catch((error) => {
      logger.log({
        level: 'error',
        message: {
          user: vendorId,
          request: {
            orderData
          },
          response: {
            error
          },
          service: 'updateOrder',
          date: date,
          type: 'UPDATE'
        }
      });
      callback({
        statusCode: Constants.errorStatus.BAD_REQUEST,
        body: error,
        isUpdated: false
      });

    });

},

我的发送对象如下所示

代码语言:javascript
运行
复制
orderData={id:purchaseData.orderId,status:'PAID'}
purchaseData.orderId={'ord001','ord002'}
EN

Stack Overflow用户

发布于 2019-11-28 15:20:49

代码语言:javascript
运行
复制
updateOrders: (orderData, vendorId ,callback) => {

    const query='UPDATE Orders SET status="'+orderData.status+'" WHERE id IN ('+orderData.id+');';
    sequelize.query(query,
    { type: sequelize.QueryTypes.UPDATE }
    ).then(result => {
      if(result!='0'){
        logger.log({level: 'info', message: {user:vendorId ,request : {query} , response: {updated:true} ,service:'updateOrder', date:date ,type:'UPDATE'}});
        callback({statusCode: Constants.errorStatus.SUCCESS, body: orderData ,isUpdated:true});
      }else{
        logger.log({level: 'warn', message: {user:vendorId ,request : {query} , response: {updated:false ,details:'Id isnt found'} ,service:'updateOrder', date:date ,type:'UPDATE'}});
        callback({statusCode: Constants.errorStatus.NOT_FOUND, body: 'Id is not matching' ,isUpdated:false});
      } 

    }).catch((error) => {
      logger.log({level: 'error', message: {user:vendorId ,request : {query} , response: {error} ,service:'updateOrder', date:date ,type:'UPDATE'}});
      callback({statusCode: Constants.errorStatus.BAD_REQUEST, body: error ,isUpdated:false});

    }
    );  

  }
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59081703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档