У меня есть приложение, которое работало, но после обновления пакетов перестало работать. проблема с сохранением узла. Требуется обновление, поэтому, пожалуйста, не предлагайте понижение. :)
Оригинальная рабочая версия получения предметов:
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, но все еще не работает.
Error. Главный звонок:
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()