Nodejs Mongoose导出函数返回2个值

2uluyalo  于 2022-11-13  发布在  Go
关注(0)|答案(1)|浏览(146)

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

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);
}
};

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

7xllpg7q

7xllpg7q1#

如果你想得到新创建的咖啡,那么你需要从内心的承诺返回,而不是公司更新,也许在更新公司之后,然后你可以构造你的回应。
试试看:

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..
    });
};

相关问题