javascript - body - title css
Secuela: actualizar el registro y devolver el resultado (2)
Esto es lo que creo que estás buscando.
db.connections.update({
user: data.username,
chatroomID: data.chatroomID
}, {
where: { socketID: socket.id },
returning: true,
plain: true
})
.then(function (result) {
console.log(result);
// result = [x] or [x, y]
// [x] if you''re not using Postgres
// [x, y] if you are using Postgres
});
Desde Sequelize docs : La promesa devuelve una matriz con uno o dos elementos. El primer elemento x
siempre es el número de filas afectadas, mientras que el segundo elemento y
son las filas reales afectadas (solo se admite en postgres con options.returning
establecido en true
).
Suponiendo que está utilizando Postgres, puede acceder al objeto actualizado con el result[1].dataValues
.
Debe establecer la opción returning: true
para decirle a Sequelize que devuelva el objeto. Y plain: true
es solo devolver el objeto en sí y no los otros metadatos desordenados que podrían no ser útiles.
Estoy usando secuela con MySQL. Por ejemplo si lo hago:
models.People.update({OwnerId: peopleInfo.newuser},
{where: {id: peopleInfo.scenario.id}})
.then(function (result) {
response(result).code(200);
}).catch(function (err) {
request.server.log([''error''], err.stack);
).code(200);
});
No estoy obteniendo información si el modelo de personas se actualizó con éxito o no. El resultado variable es solo una matriz con un elemento, 0 = 1
¿Cómo puedo saber con seguridad si el registro se actualizó o no?
La función de actualización de la secuela devuelve un número de filas afectadas (primer parámetro de la matriz de resultados).
Usted debe llamar a encontrar para obtener fila actualizada
models.People.update({OwnerId: peopleInfo.newuser},
{where: {id: peopleInfo.scenario.id}})
.then(function (result) {
models.People.findById(peopleInfo.scenario.id)
.then(function(user){
response(user).code(200);
}).catch(function (err) {
request.server.log([''error''], err.stack);
).code(200);
});
}).catch(function (err) {
request.server.log([''error''], err.stack);
).code(200);
});