#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']