nuxt官网api给出这样的结论 表示看不太懂
我的代码是在js文件中 下面是我的js文件,我怎么改??
import commons from '~/utils/common.js'
import hopaction from '~/models/hop_action.js'
// 设备注册
const uidstr = window.localStorage.getItem('uid')
const eqpmdidstr = window.localStorage.getItem('equipmentuid')
const uuidstr = window.localStorage.getItem('uuid')
const deviceid = commons.deviceid(19, 16) + new Date().getTime()
if (!commons.isnull(uuidstr)) {
window.localStorage.setItem('uuid', deviceid)
}
const deviceidinfo = {
'os': 'm3',
'brand': 'm3',
'model': 'm3'
}
function equipment () {
if (!commons.isnull(eqpmdidstr)) {
hopaction.page({'channel': 'm3', 'platform': '99', 'deviceid': deviceid, 'device_info': JSON.stringify(deviceidinfo)}, 'platform.passport.register_by_device', data => {
window.localStorage.setItem('equipmentuid', data.uid)
window.localStorage.setItem('uid', data.uid)
console.log(data)
}, data => {
console.log('失败')
})
}
}
function equiregis () {
if (!commons.isnull(uidstr)) {
equipment()
} else {
equipment()
}
}
export default {
equiregis
}
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答872 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
nuxtjs作为一个服务端渲染的库,代码应该在node环境执行,浏览器的执行环境和node的执行环境是有差异的,node上是没有window或document这样的对象,所以会报错。
解决的办法有两种思路:
假如没有该对象或方法,可以用一个空对象或方法填充:
或者干脆不执行,跳过这段代码
最终生成的代码会保留源代码,这些代码在浏览端是能够正常运行的,只是在node上会被忽略。