我使用express在节点中休息api。
我有一些结束......
router.get('/admin/logs', (req, res) => {
当所有端点都被调用时,我想调用特定的函数。
我该怎么做?
因此,简单的方法就是将函数调用放到每个请求中。
但有没有全球化的方式?
感谢您的帮助。
答案 0 :(得分:1)
你可以使用Express middleware在所有其他调用之前放置一个处理程序,但遗憾的是没有。举个例子:
app.use((req, res, next) => {
log.info("Hello!");
next();
})
app.get("/", (req, res) => {
res.end("That should work");
});
如果您想在所有请求之后拨打电话,您可以替换.end
上的res
功能,将您自己的功能放在那里进行一些自定义处理和调用真正的.end()
,但我不推荐这个(monkeypatching很糟糕!)。
答案 1 :(得分:1)
在脚本的开头放置一个中间件并使用此on-finished
var onFinished = require('on-finished')
router.use('/*', (req, res, next) => {
console.log('new request')
onFinished(res, function (err) {
console.log('request end')
})
next()
});