Node and Express中的请求和响应生命周期

时间:2019-03-14 15:44:26

标签: node.js express

我的网络应用程序的路由设置非常简单

router.get('/myTestRoute/:id', async (req: Request, res: Response, next: NextFunction) => {
    await doSomeAsync(req, res);
    res.json({ myObj: 32 });
    return next();
}

doSomeAsync实际上执行对服务的请求,最多需要20秒。但是,用户正在寻找的响应不需要或不在乎doSomeAsync响应,因此我认为我可以删除await,使其看起来像这样:

router.get('/myTestRoute/:id', async (req: Request, res: Response, next: NextFunction) => {
    doSomeAsync(req, res);
    res.json({ myObj: 32 });
    return next();
} 

在doSomeAsync函数内部,在服务调用之后,我们引用req和res对象上的参数,例如req对象上的参数,以及res对象上的一些身份验证内容。

我发现这是行不通的,并且我意识到在将响应发送回用户之后,我不完全理解req和res会发生什么。

在我依次调用res.json()next()之后,请求和响应对象会发生什么情况,它们会重置吗?它们会以任何方式改变吗?

我应该重构doSomeAsync()来接受req.params中的原始值吗?

0 个答案:

没有答案