Vue Node.js从请求头中提取cf ipcountry cloudflare



我目前正在为我的项目使用vue-js-nuxt。我在解析要检索的请求标头时遇到问题cf ipcountry由cloudflare提供。这个用例是显示不同国家的不同内容

在我的vue文件下,我的代码看起来像这样

async asyncData(context) {  
try{
const countryCF = context.req.headers['cf-ipcountry'] 
}
}

当我尝试console.log(countryCF(时,它不会返回它,但如果我尝试console.log(context.req.headers['cf-ipcountry'](,它工作得很好,它确实打印出了整个标题,但我只需要cf ipcountry,我错过了什么吗?感谢

我使用了以下内容:

const country_code = req.headers['cf-ipcountry'] ?? 'unknown';

它对我来说效果很好,没有打印整个标题,只有两个字母的国家代码。

我意识到原因是由于Nuxt SSR初始加载来自服务器端,但后续请求将来自客户端,这就是为什么它返回错误

if (process.server) {
context.app.$cookiz.set('user-country', context.req.headers['cf-ipcountry']) 
}

通过if process.server求解,我将其与此包一起存储在cookie中https://www.npmjs.com/package/cookie-universal-nuxt

最新更新