файл cookie nodejs — ошибка типа сеанса

#node.js #express #cookie-session

#node.js #экспресс #файл cookie-сеанс

Вопрос:

Ошибка типа: this.keys.index не является функцией

журнал консоли показывает, что строка условия if является ошибкой

 app.get('/',(req,res)=>{
    if(!req.session.authenticated){
        res.redirect('/login');
    }else{
        res.redirect('/search')
    }
})
 

все было хорошо, пока я не запустил другой server.js из совершенно другой папки. Я попытался переустановить node_module, чтобы исправить это, но результат тот же. но странная часть в том, что я могу запустить сервер на виртуальной машине без каких-либо проблем. может ли кто-нибудь помочь мне с этим?

 Cookies.prototype.get = function(name, opts) {
  var sigName = name   ".sig"
    , header, match, value, remote, data, index
    , signed = opts amp;amp; opts.signed !== undefined ? opts.signed : !!this.keys

  header = this.request.headers["cookie"]
  if (!header) return

  match = header.match(getPattern(name))
  if (!match) return

  value = match[1]
  if (!opts || !signed) return value

  remote = this.get(sigName)
  if (!remote) return

  data = name   "="   value
  if (!this.keys) throw new Error('.keys required for signed cookies');
 index = this.keys.index(data, remote)

  if (index < 0) {
    this.set(sigName, null, {path: "/", signed: false })
  } else {
    index amp;amp; this.set(sigName, this.keys.sign(data), { signed: false })
    return value
  }
};
 

Комментарии:

1. Пожалуйста, опубликуйте полный код там, где this.keys.index он существует

2. обновил его ниже моего вопроса

Ответ №1:

Я понимаю, что этот ответ поздно, но может помочь кому-то с той же ошибкой. Я получал сообщение об ошибке «ошибка типа: this.keys.index не является функцией» в строке 73 index.js в файлах cookie при попытке использовать koa-сессию.

В конце концов я понял, что установил app.keys в одно значение, т.е.

 app.keys = 'dieueyf7huienejnfef'
 

Когда это должен быть массив:

 app.keys = ['dieueyf7huienejnfef']