Acabo de hacer una consulta de eliminación en mysql con secuela.
const model = require('../../../config/model/index'); const controller = {}; controller.drop = async function(req, res) { try { await model.activitys.destroy({ where: { id: req.params.id } }) check_id = model.activitys.findAll({ where: { id: req.params.id } }) if(check_id!=null){ res.status(200).json({ status: "Success", message: "Success", data: {} }) }else{ res.status(404).json({ status: "Not Found", message: `Activity with ID ${id} Not Found`, data: {} }) } } catch (error) { res.status(404).json({ status: "Error", message: error.message }) } } module.exports = controller;Quiero eliminar los datos en la base de datos de los parámetros de identificación, funciona para eliminar los datos. Pero cuando trato de eliminar por identificación que no existe en mi base de datos, todavía obtengo el código de estado 200.
¿Cómo hacer que devuelva el código de estado 404 si no hay datos en la base de datos?
Si desea verificar si existe un solo registro en la base de datos, use findOne o findByPk en lugar de findAll . findAll siempre devuelve una matriz (ya sea vacía o no) y eso significa que siempre no es igual a null :
check_id = model.activitys.findOne({ where: { id: req.params.id } })