gpt4 book ai didi

node.js - 通过 final方法发送所有路由

转载 作者:搜寻专家 更新时间:2023-11-01 00:48:04 25 4
gpt4 key购买 nike

我正在使用 NodeJS 和 express。 Express 支持中间件,这对于通过“预处理器”发送所有路由以进行身份​​验证等非常方便。

是否有后处理器的等效项?

我想更新所有响应的 token 。这是因为用户“工作”他们的身份验证不会过期,因为我总是刷新它。

可能会有一些混淆,所以我将添加一段示例代码:

router.get('/auth', [auth], async function({ user }, res) {


<<code to generate new token>>
return res.header('Authentication', 'Basic ' + token).send(200);
});

所以在每条路线的最后我想调用下面的代码来更新头部:

  <<code to generate new token>>
return res.header('Authentication', 'Basic ' + token).send(200);

[auth] 是中间件。我想知道是否有一个像中间件一样容易的“端件”在发送给用户之前发送所有响应,这样我就不必在每条 route 手动复制 token 生成和 header 代码。

谢谢

吉娜

最佳答案

您可以从您的路由处理程序调用 next 回调来调用下一个中间件,就像这样

router.get('/auth', [auth], async function({ user }, res, next) {
...
next()
});

app.use((req, res, next) => {
<<code to generate new token>>
res.header('Authentication', 'Basic ' + token).send(200);
})

或者这样

const addAuth = (req, res) => {
<<code to generate new token>>
res.header('Authentication', 'Basic ' + token).send(200);
}

router.get('/auth', [auth], async function({ user }, res, next) {
...
next()
}, addAuth);

但是你必须注意只使用一次res.send函数因为它会关闭响应流,但是你可以使用res.write/res .end.

关于node.js - 通过 final方法发送所有路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56434571/

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