koajs / generic-session

koa session store with memory, redis or others.
MIT License
414 stars 65 forks source link

set session error : Cannot set property name of which has only a getter #132

Closed heiemooa closed 5 years ago

heiemooa commented 5 years ago
// index.js
var session = require('koa-generic-session');
var redisStore = require('koa-redis');
var Koa = require('koa');

var app = new Koa();
app.keys = ['keys', 'keykeys'];
app.use(session({
  store: redisStore({
    // Options specified here
  })
}));
app.use(async ctx => {
  if (ctx.path === '/set') {
    ctx.session.view = 'new session'
    ctx.body = ctx.session
  } else {
    ctx.body = 'Hello World';
  }
})
app.listen(3000, () => {
  console.log('localhost:3000')
});
// package.json
  "koa": "^2.8.1",
  "koa-generic-session": "^2.0.1",
  "koa-redis": "^4.0.0",

hello, this is my code, when I visit locolhost: 3000, it works fine. but when I access the localhost:3000/set, it failed, and reported the following error.how should I solve?

 TypeError: Cannot set property name of  which has only a getter
      at defaultErrorHanlder (/Users/huangfushan/hfs/test/koa-demo/node_modules/koa-generic-session/lib/session.js:523:12)
      at /Users/huangfushan/hfs/test/koa-demo/node_modules/koa-generic-session/lib/session.js:193:9
      at Generator.throw (<anonymous>)
      at step (/Users/huangfushan/hfs/test/koa-demo/node_modules/koa-generic-session/lib/session.js:3:191)
      at /Users/huangfushan/hfs/test/koa-demo/node_modules/koa-generic-session/lib/session.js:3:402
      at process._tickCallback (internal/process/next_tick.js:68:7)
liutengfei1991 commented 4 years ago

I have the same problem. How did you solve it?

smz8023 commented 4 years ago

我也有同样的问题。您是如何解决的?

liuweicom commented 4 years ago

我也遇到了这样问题: TypeError: Cannot set property name of which has only a getter at defaultErrorHanlder (F:\pra\mt-app\node_modules\koa-generic-session\lib\session.js:558:12) at F:\pra\mt-app\node_modules\koa-generic-session\lib\session.js:193:9 at Generator.throw () at step (F:\pra\mt-app\node_modules\koa-generic-session\lib\session.js:3:191) at F:\pra\mt-app\node_modules\koa-generic-session\lib\session.js:3:402 at process._tickCallback (internal/process/next_tick.js:68:7) 目前发现是没有启动redis,可以用命令行:redis-server.exe redis.windows.conf,启动redis之后就可以正常运行了

garypotato commented 2 years ago

I have the same problem, as long as I removed the auth in Redis database, this issue gone

DmitryKovganov commented 1 year ago

In my case Redis stopped write records after the software update, although it was running. Restart of the OS helped.