Estoy usando Sequelize express con Node.js como back-end, algunos datos de mi secuencia deben incluirse en otra tabla, pero algunos de estos datos son nulos, por lo que el resultado total que obtengo es nulo.
Pregunta: ¿cómo puedo devolver algunos datos si los datos están disponibles y devolver el otro valor nulo si no hay datos?
router.get("/scheduled/:id", function(req, res, next) { models.Order.findOne({ where: { id: req.params.id }, attributes: ['orderStatus', 'id', 'serviceId', 'orderDescription', 'orderScheduledDate'], include: [{ model: models.User, attributes: ['firstName', 'phoneNumber'] }] }).then(function(data) { res.status(200).send({ data: data, serviceName: data["serviceId"] }); }); });Quiero: el resultado debe devolver nulo si no hay un usuario para el pedido y devolver los detalles del pedido y el usuario cuando es nulo.
Sin embargo, una cláusula
whereen un modelo relacionado creará unainner joiny devolverá solo las instancias que tienen submodelos coincidentes. Para devolver todas las instancias principales, debe agregarrequired: falsepara obtener más detalles, verifique la carga anidada anidada
var users = require('./database/models').user; models.Order.findOne({ where: { id: req.params.id },attributes: ['orderStatus','id','serviceId','orderDescription','orderScheduledDate'], include: [ {model: users,required: false, attributes: ['firstName','phoneNumber'] } ] }).then(function(data) { res.status(200).send({data : data,serviceName : data["serviceId"]}); });Puede agregar el atributo required: false,
const result = await company.findAndCountAll({ where: conditions, distinct: true, include: [ media, { model: tag, where: tagCond, }, { model: users, where: userCond, attributes: ['id'] }, { model: category_company, as: 'categoryCompany', where: categoryCond, }, { model: media, as: 'logoInfo' }, { model: city, as: 'city' }, { model: employee, as: 'employees', required: false, include: [{ model: media, as: 'avatarInfo', }], where: { publish: { [Op.ne]: -1, }, }, }, ], order: [['createdAt', 'DESC']], ...paginate({ currentPage: page, pageSize: limit }), });