gpt4 book ai didi

node.js - Nodejs - 异步/等待我的 Controller

转载 作者:太空宇宙 更新时间:2023-11-04 03:03:49 24 4
gpt4 key购买 nike

现在我有这个路由 Controller

export let remove = (req: Request, res: Response) => {
Area.removeAndRecalc(req.query.ids).then(() => {
return res.json({ success: true });
});
};

并调用以下模型方法

areaSchema.statics.removeAndRecalc = async function(ids) {
let parents = await this.model("Area").find({_id: ids});

await this.model("Area").delete(
{
_id: ids
}
);
await parents.forEach((parent) => {
parent.recalcParentChilds();
})
return;
}

该函数返回一个 promise 。这段代码可以写在 Controller 中吗?我尝试对我的 Controller 使用“异步”,但我不起作用

类似这样的东西(不起作用)

export let remove = async (req: Request, res: Response) => {

let parents = await this.model("Area").find({_id: req.query.ids});

await this.model("Area").delete(
{
_id: req.query.ids
}
);
await parents.forEach((parent) => {
parent.recalcParentChilds();
})
return res.json({ success: true });
};

最佳答案

目前尚不清楚“什么”到底不起作用。不良行为的异常或描述会很有用。

但请查看async-middleware 。我像这样使用它,例如在一些项目中:

import { wrap } from 'async-middleware'
//Loads of code, some of which creates router, an Express router.
router.get('/some/path/here', wrap(async (req, res) {
var data = await dataFromService();
res.write(renderData(data));
res.end();
}));
//Loads of code

关于node.js - Nodejs - 异步/等待我的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46503075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com