我有一个正在运行的应用程序,但在完成包升级后停止工作。 node-persist问题。 升级是必需的,所以请不要建议降级。 :)
获取物品的原始工作版本:
function getAccounts (masterPassword) {
// use getItemSync to fetch accounts
var encryptedAccount = storage.getItemSync('accounts')
var accounts = []
// decrypt
if (typeof encryptedAccount !== 'undefined') {
var bytes = crypto.AES.decrypt(encryptedAccount, masterPassword)
accounts = JSON.parse(bytes.toString(crypto.enc.Utf8))
}
// return accounts array
return accounts
}
function saveAccounts (accounts, masterPassword) {
// encrypt accounts
var encryptedAccounts = crypto.AES.encrypt(JSON.stringify(accounts), masterPassword)
// setItemSync
storage.setItemSync('accounts', encryptedAccounts.toString())
return accounts
}
我关注了这个问题:node-persist - NodeJS 和MDN:https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage以及GitHub中的文档:https://github.com/simonlast/node-persist但仍无效。
错误。主要电话:
var createdAccount = createAccount({
username: argv.username,
password: argv.password
}, argv.masterPassword)
console.log('Account created!')
console.log(createdAccount)
} catch (e) {
console.log('Unable to create account.')
console.error(e)
}
使用createAccount函数:
function createAccount (account, masterPassword) {
var accounts = getAccounts(masterPassword)
accounts.push(account)
saveAccounts(accounts, masterPassword)
return account
}
失败:
SyntaxError: Unexpected end of JSON input
在这一行:
accounts = JSON.parse(bytes.toString(crypto.enc.Utf8))
您是否可以使用storage.getItem()
和storage.setItem()