Soy nuevo en bookshelf.js y KNEX. Actualmente trabajando en un controlador para eliminar filas asociadas con una identificación y luego insertar nuevas filas en la misma tabla desde una solicitud.
Modelo:
const model = ModelBase.extend({ tableName: 'table', idAttribute: 'id', schema: { id: Joi.number().integer(), year: Joi.number().integer().when('$creating', required), // datafields }Código del controlador:
const { id, requestBody } = req.swagger.params; // pull out request body const { newRows } = requestBody; // pull out newRows object from request // do stuff .then(() => { db.model.where({ id }).fetchAll() // then fetch all rows that match id .then((rowsWithId) => { if (!rowsWithId) { throw new NotFound('No rows found with id'); } db.model.where({ id }).destroy(); // remove all rows with id from model newRows.forEach((r) => { db.model.create( r ); // iterate through newRoles object and insert new rows into model } newRows.save({ method: 'insert' }); }) .catch(next); })Cuando ejecuto el código recibo un 200 (solicitud exitosa) pero en mi consola recibo un montón de problemas de validación de Joi, y este error:
CustomError: No Rows Updated¿Alguien puede decirme qué estoy haciendo mal aquí? Las filas con los ID se eliminan de la base de datos, pero no se insertan filas nuevas. He buscado por todas partes una solución y no he encontrado mucho. Además, la documentación de estantería no ha sido especialmente útil.