Stateful Singletons 피하기 우리가 클라이언트 코드를 쓸 때, 우리는 우리의 코드가 매번 새로운 context로 evalutated될 것이라 기대한다. 그러나 node.js 서버는 긴- 작동의- 프로세스이다. 우리의 코드가 프로세스에서 요구도면, 그것은 메모리에 남아 evaluated 된다. 이는 네가 singleton object를 만들면, 모든 request에 사이에서 이 object가 공유될 것이란 거다. 우리는 새로운 루트 Vue 인스턴스를 각각의 요청에 대해 만들어야 한다. 이건 각각의 브라우저에서 유저가 새로운 인스턴스를 사용하는 것과 비슷하다. 우리가 다중의 request에서 교차해서 인스턴스를 공유하면 cross-request state pollution을 피할 수 없다. 그렇기에, 직접적으로 앱 인스턴스를 만드는 것 대신, 우리는 각 request를 위한 신선한 앱 인스턴스를 만드는 반복적인 작업을 하는 factory function을 노출 시켜야 한다. // app.js const Vue = require ( 'vue' ) module . exports = function createApp ( context ) { return new Vue ( { data : { url : context . url } , template : `<div>The visited URL is: {{ url }}</div>` } ) } 그리고 우리의 서버 코드는 이렇게 바뀐다: // server.js const createApp = require ( './app' ) server . get ( '*' , ( req , res ) => { const context = { url : req . url } const app = createApp ( con...
댓글
댓글 쓰기