Vue Node.js 从请求 headers 中提取 cf-ipcountry cloudflare
Vue Node.js extract cf-ipcountry cloudflare from request headers
我目前正在为我的项目使用 vue js nuxt。我在解析请求 headers 以检索时遇到问题
cf-ipcountry 由 cloudflare 提供。这个用例是为不同的国家显示不同的内容
我的代码在我的 vue 文件下看起来像这样
async asyncData(context) {
try{
const countryCF = context.req.headers['cf-ipcountry']
}
}
当我尝试 console.log(countryCF) 它不会 return 它,但如果我尝试 console.log(context.req.headers['cf-ipcountry' ]) 它工作正常,它确实打印出整个 headers,但我只需要 cf-ipcountry,我错过了什么吗?谢谢
我使用了以下内容:
const country_code = req.headers['cf-ipcountry'] ?? 'unknown';
它对我来说效果很好,没有打印整个 headers,只打印 2 个字母的国家/地区代码。
我意识到原因是由于 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
我目前正在为我的项目使用 vue js nuxt。我在解析请求 headers 以检索时遇到问题 cf-ipcountry 由 cloudflare 提供。这个用例是为不同的国家显示不同的内容
我的代码在我的 vue 文件下看起来像这样
async asyncData(context) {
try{
const countryCF = context.req.headers['cf-ipcountry']
}
}
当我尝试 console.log(countryCF) 它不会 return 它,但如果我尝试 console.log(context.req.headers['cf-ipcountry' ]) 它工作正常,它确实打印出整个 headers,但我只需要 cf-ipcountry,我错过了什么吗?谢谢
我使用了以下内容:
const country_code = req.headers['cf-ipcountry'] ?? 'unknown';
它对我来说效果很好,没有打印整个 headers,只打印 2 个字母的国家/地区代码。
我意识到原因是由于 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