Koa.js-세션

HTTP는 상태 비 저장이므로 요청을 다른 요청에 연결하려면 HTTP 요청간에 사용자 데이터를 저장하는 방법이 필요합니다. 쿠키와 URL 매개 변수는 모두 클라이언트와 서버간에 데이터를 전송하는 데 적합한 방법입니다. 그러나 둘 다 클라이언트 측에서 읽을 수 있습니다. 세션은이 문제를 정확히 해결합니다. 클라이언트에 ID를 할당하고 해당 ID를 사용하여 모든 추가 요청을 수행합니다. 클라이언트와 관련된 정보는이 ID에 연결된 서버에 저장됩니다.

koa-session이 필요하므로 다음을 사용하여 설치하십시오.

npm install --save koa-session

우리는 koa-session미들웨어. 이 예에서는 RAM을 사용하여 세션을 저장합니다. 프로덕션 환경에서는 사용하지 마십시오. 세션 미들웨어는 모든 것을 처리합니다. 즉, 세션 생성, 세션 쿠키 설정, 컨텍스트 객체에 세션 객체 생성 등이 있습니다.

동일한 클라이언트에서 다시 요청을 할 때마다 세션 정보가 저장됩니다 (서버가 다시 시작되지 않은 경우). 이 세션 개체에 더 많은 속성을 추가 할 수 있습니다. 다음 예에서는 클라이언트에 대한 뷰 카운터를 만듭니다.

var session = require('koa-session');
var koa = require('koa');
var app = koa();

app.keys = ['Shh, its a secret!'];
app.use(session(app));  // Include the session middleware

app.use(function *(){
   var n = this.session.views || 0;
   this.session.views = ++n;
   
   if(n === 1)
      this.body = 'Welcome here for the first time!';
   else
      this.body = "You've visited this page " + n + " times!";
})

app.listen(3000);

위 코드가하는 일은 사용자가 사이트를 방문 할 때 사용자를위한 새 세션을 만들고 쿠키를 할당하는 것입니다. 다음에 사용자가 방문하면 쿠키가 확인되고 이에 따라 page_view 세션 변수가 업데이트됩니다.

이제 앱을 실행하고 localhost:3000, 다음과 같은 응답을 받게됩니다.

페이지를 다시 방문하면 페이지 카운터가 증가합니다. 이 경우 페이지는 12 번 새로 고쳐졌습니다.