【问题标题】:nodejs cookie-session typeerrornodejs cookie-session类型错误
【发布时间】:2021-11-24 03:09:34
【问题描述】:

TypeError:this.keys.index 不是函数

控制台日志显示if条件行错误

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

在我从一个完全不同的文件夹启动另一个 server.js 之前,一切都很好。我试图重新安装 node_module 来修复它,但结果是一样的。但奇怪的是我可以毫无问题地在 vm 中启动服务器。有什么可以帮助我的吗?

Cookies.prototype.get = function(name, opts) {
  var sigName = name + ".sig"
    , header, match, value, remote, data, index
    , signed = opts && 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 && this.set(sigName, this.keys.sign(data), { signed: false })
    return value
  }
};

【问题讨论】:

  • 请发布完整代码,this.keys.index 存在的地方
  • 在我的问题下方更新了

标签: node.js express cookie-session


【解决方案1】:

我意识到这个答案已经很晚了,但可能会对遇到同样错误的人有所帮助。尝试使用 koa-session 时,我在 cookie 中 index.js 的第 73 行收到错误“TypeError: this.keys.index is not a function”。

我最终意识到我已将 app.keys 设置为单个值,即

app.keys = 'dieueyf7huienejnfef'

当它应该是一个数组时:

app.keys = ['dieueyf7huienejnfef']

【讨论】:

    猜你喜欢
    • 2021-03-23
    • 2022-09-23
    • 2014-10-12
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多