Как я могу установить и прочитать данные сеанса в RingoJS?
Добрый день,
Я недавно начал играть с RingoJS вместе с промежуточным программным обеспечением Stick, и теперь я застрял в сессиях. Я не могу заставить это работать.
main.js
var {Application} = require( "./_lib_/stick" ),
app = exports.app = Application();
app.configure( "mount" );
app.mount( "/", require( "./actions" ) );
if ( require.main === module ) {
require( "ringo/httpserver" ).main( module.directory );
}
actions.js
var {Application, helpers} = require( "./_lib_/stick" ),
Response = require( "ringo/jsgi/response" );
export( "app" );
var app = Application();
app.configure( "route", "render", "session" );
app.render.base = module.resolve( "templates" );
app.render.master = "page.html";
app.get("/session.htm", function( request ) {
//request.session.data.foo = "bar";
request.session.data.put("foo", "bar");
return Response.redirect( "session2.htm" );
});
app.get("/session2.htm", function( request ) {
var value = request.session;
return Response.html( "Session: " + value );
});
Я проверил много комбинаций, но ни один из них не работал так, как предполагалось.
Большинство ошибок, которые я получаю, касается чтения данных из сеанса. Например:
Ошибка типа: невозможно прочитать свойство "данные" из неопределенного
Какие-нибудь советы?
1 ответ
Решение
"session"
должен прийти раньше "mount"
в app.configure
,
На четвертой строке main.js:
app.configure( "session", "mount" );
Затем удалите "session"
от последующего звонка app.configure
поскольку нет смысла запускать промежуточное ПО дважды.