Как я могу установить и прочитать данные сеанса в RingoJS? - PullRequest
1 голос
/ 16 ноября 2011

Добрый день,

Я недавно начал играть с 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 );
});

Я проверял много комбинаций, но ни одна из них не работала так, как предполагалось.

Большинство ошибок, которые я получаю, касается чтения данных из сеанса.Например:

TypeError: Невозможно прочитать свойство "данные" из неопределенного

Есть подсказки?

1 Ответ

2 голосов
/ 16 ноября 2011

"session" должен предшествовать "mount" в app.configure.

На четвертой строке main.js:

app.configure( "session", "mount" );

Затем удалите "session" из последующего вызова на app.configure, так как нет смысла запускать промежуточное ПО дважды.

...