Node-Persist getItem () / setItem () в функции синхронизации не работает - PullRequest
0 голосов
/ 16 мая 2018

У меня есть приложение, которое работало, но после обновления пакетов перестало работать. проблема с сохранением узла. Требуется обновление, поэтому, пожалуйста, не предлагайте понижение. :)

Оригинальная рабочая версия получения предметов:

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()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...