ctx.session.isNew undefined
- Dominant language
- TypeScript
- Stars
- 908
- Forks
- 115
- PR merge metrics
- No merged PRs in 30d
Description
## Example
### dependencies
```json
"dependencies": {
"koa": "^2.6.2",
"koa-session": "^5.10.1"
}
```
### index.js
```js
const session = require('koa-session');
const Koa = require('koa');
const app = new Koa();
app.keys = ['some secret hurr'];
const CONFIG = {
key: 'koa:sess', /** (string) cookie key (default is koa:sess) */
/** (number || 'session') maxAge in ms (default is 1 days) */
/** 'session' will result in a cookie that expires when session/browser is closed */
/** Warning: If a session cookie is stolen, this cookie will never expire */
maxAge: 86400000,
autoCommit: true, /** (boolean) automatically commit headers (default true) */
overwrite: true, /** (boolean) can overwrite or not (default true) */
httpOnly: true, /** (boolean) httpOnly or not (default true) */
signed: true, /** (boolean) signed or not (default true) */
rolling: false, /** (boolean) Force a session identifier cookie to be set on every response. The expiration is reset to the original maxAge, resetting the expiration countdown. (default is false) */
renew: false, /** (boolean) renew session when session is nearly expired, so we can always keep user logged in. (default is false)*/
};
app.use(session(CONFIG, app));
// or if you prefer all default config, just use => app.use(session(app));
app.use(ctx => {
// ignore favicon
if (ctx.path === '/favicon.ico') return;
let n = ctx.session.views || 0;
ctx.session.views = ++n;
// undefined
console.log(ctx.session.isNew)
ctx.body = n + ' views';
});
app.listen(3000);
console.log('listening on port 3000');
```
Contributor guide
Research direction
Start by running the dependency setup and index.js example to reproduce the undefined value at console.log(ctx.session.isNew). Then inspect the session API used by the example and determine whether the completed behavior should expose isNew, with the result reflected in the example or an appropriate test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100