gpt4 book ai didi

javascript - 无法解构 `variableName` 或 'undefined' 的属性 'null'

转载 作者:行者123 更新时间:2023-12-03 00:34:31 25 4
gpt4 key购买 nike

原始错误是:无法解构“undefined”或“null”的属性“firstime”

我正在使用 node.js 为 Windows pc 开发基于 Web 的桌面应用程序和 Electron 。我试图在用户数据目录中保留一些数据,我在 this 中找到了这个想法并使用相同的方法链接。

写入和获取数据工作正常,但在第一次获取数据时发生错误。

这是UserPreferences类的代码

const electron = require('electron');
const path = require('path');
const fs = require('fs');

class UserPreferences {
constructor(opts) {
const userDataPath = (electron.app || electron.remote.app).getPath('userData');
this.path = path.join(userDataPath, opts.configName + '.json');
this.data = parseDataFile(this.path, opts.defaults);
console.log(userDataPath);
}
get(key) {
return this.data[key];
}
set(key, val) {
this.data[key] = val;
fs.writeFileSync(this.path, JSON.stringify(this.data));
}
}

function parseDataFile(filePath, defaults) {
try {
return JSON.parse(fs.readFileSync(filePath));
} catch (error) {
return defaults;
}
}

module.exports = UserPreferences;

这是使用UserPreferences类的函数

function isFirstTime() {
try{
const userAccount = new UserPreferences({
configName: 'fipes-user-preferences', // We'll call our data file 'user-preferences'
defaults: {

user: { firstime: true, accountid: 0, profileid: '' }
}
});

var { firstime, accountid, profileid } = userAccount.get('user');

if (firstime === true) { //check if firstime of running application
//do something
} else {
//do something
}
}catch(err){
console.log(err.message);
}
}

错误发生在我检查 firstime 是否正确的行上。

最佳答案

首先不要像这样声明一个像 var {firstTime, .. } 这样的对象。如果您这样做,firstTime 将成为匿名对象的属性。您永远无法在其他地方访问。检查 userAccount.get('user') 函数的输出是什么,输出包含一些对象,例如 {firstime: true, accountid: "test", profileid: "test"} 然后尝试这个。希望这对您有帮助。

var result=userAccount.get('user');
if(result.firstTime===true){
//your code
}

关于javascript - 无法解构 `variableName` 或 'undefined' 的属性 'null',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53719012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com