javascript Express Morgan异步使用

wkyowqbh  于 2023-01-04  发布在  Java
关注(0)|答案(1)|浏览(115)

我花了太多时间在这上面,但我不知道是否有可能做到:反向查找IP并通过morgan记录

Express.use(Morgan(async(tokens, req, res) => {
    async function ip_reverse_lookup(ip) {
        return hostnames = await dns.reverse(ip)
    }
    hostnames = await ip_reverse_lookup(ip)
    return hostnames
}

现在morgan只是将[object Promise]显示为控制台中的输出

k97glaaz

k97glaaz1#

我试着解开摩坦托肯的诺言,但是我失败了。
首先,我通过定义一个异步函数,将相应的值放入req并在morgan.token中使用它来解决这个问题。

app.use(async function checkDnsByIp (req, next){
  const dns= await dns.reverse(ip);
  req.dns= dns
  next()
})
app.use(morgan(...));

morgan.token("dns", (req) => req.dns || "");

相关问题