开发者问题收集

Nodejs Mongoose Exports函数返回2个值

2022-10-16
26

我正在做一个项目,我编写的服务正在运行,但它没有给出我想要的响应值。我想制作咖啡。每种咖啡都有特定的公司。每次我制作咖啡时,我都希望公司在其模型中也制作这些咖啡。

这是我的服务

exports.createCoffee = async (coffee, companyId) => {
    return await CoffeeModel.create(coffee).then((value) => {
        return CompanyModel.findByIdAndUpdate(companyId, {
            $push: { coffees: value._id },
        });
    });
};

这是我的控制器

exports.createCoffee = async (req, res) => {
try {
    const newCoffee = await coffeeService.createCoffee(
        req.body,
        req.body.company._id
    );
    res.status(201).json(newCoffee);
} catch (error) {
    res.status(500).json(error);
}
};

当我制作咖啡时,它会返回公司的信息作为响应。我该如何解决这个问题。

1个回答

如果您想获得新创建的咖啡,那么您需要从内部承诺中返回它,而不是公司更新,也许在更新公司之后,然后您就可以构建您的回应。

试试这个:

exports.createCoffee = async (coffee, companyId) => {
    return await CoffeeModel.create(coffee).then(async(value) => {
        await CompanyModel.findByIdAndUpdate(companyId, {
            $push: { coffees: value._id },
        });
        return value; //  or whatever you want to return..
    });
};
traynor
2022-10-16