nuxt.js - 如何在 Nuxt 3 中间件获取当前域?

我不能在这里使用 window.location,因为它是 SSR 应用程序。 useRouter、useRoute 和 useNuxtApp 也没有域名。 nuxtApp.ssrContext 未定义。

export default defineNuxtRouteMiddleware((to: any, from: any) => {
  console.log("GET HOST HERE")
})

最佳答案

我只是错过了在获取 nuxtApp.ssrContext 之前检查 process.server。这是我的问题的答案:

export default defineNuxtRouteMiddleware((to: any, from: any) => {
  const nuxtApp = useNuxtApp()
  let host = ''
  if(process.server) {
    // for 3.0.0.rc_vercions: host = nuxtApp.ssrContext.req.headers.host
    // UPD 27.01.23:
    host = nuxtApp.ssrContext?.event.node.req.headers.host
  } else {
    host = window.location.host
  }
})

https://stackoverflow.com/questions/72252942/

相关文章:

c++ - 如何从析构函数返回变量

awk - 用键分隔行并存储在不同的文件中

spring-webflux - Netty Http 客户端连接池

c - 如何从内存中正确分配结构

python - 如何找到具有最少步数的元素

python - 在 Python 中用正则表达式替换 '(' 时出错

r - 在嵌套列表中从第一个列表中选择第一个元素,从第二个列表中选择第二个元素,依此类推

r - 根据特定列中的数据框条目添加新列的最快方法是什么

arrays - 将 + 或 += 与 array#map 一起使用?

python - 为什么有些功能pass了