flatiron.js / union - где разместить конфигурацию app.use ()? - PullRequest
1 голос
/ 20 марта 2012

Взяв простой пример от Union, мне интересно, куда я могу поместить конфигурационный код, который обычно идет в app.configure, например passport.js :

app.configure(function() {
  // Initialize Passport!  Also use passport.session() middleware, to support
  // persistent login sessions (recommended).
  app.use(passport.initialize());
  app.use(passport.session());
});

Есть идеи?сервер и маршрутизатор не принимают использование ().

Ответы [ 3 ]

1 голос
/ 04 мая 2012

Union поддерживает связующее промежуточное ПО через свойство before, как уже упоминалось ранее. Однако union не обрабатывает конфигурацию приложения; Флатирон делает. API, однако, значительно отличается от экспресс.

Например, настройка приложения может выглядеть примерно так:

var path = require('path'),
    flatiron = require('flatiron'),
    app = flatiron.app,
    plugins = flatiron.plugins,
    connect = require('connect'), // most connect middlewares work with flatiron ootb
    passport = require('passport');

// Use flatiron's http plugin (not the same as a middleware!)
app.use(plugins.http);

// configuration consists of key/value pairs, not of function blocks associated with
// certain "environments".
// Here's *a* way you can handle environment-based configs; there are others!
app.config.file(path.resolve(
  __dirname,
  'config',
  (process.env.NODE_ENV || 'config') + '.json'
));

// Use our config to set the secret
app.http.before.push(connect.session({
  secret: app.config.get('secret') || 'keyboard cat' //default
}))
app.http.before.push(passport.initialize());
app.http.before.push(passport.session());

Я не пробовал запускать этот пример (я уверен, что здесь есть более подробная информация), но, надеюсь, это даст вам представление.

1 голос
/ 28 августа 2012

Я только что создал оболочку для интеграции Passport.js с Flatiron.js.

https://npmjs.org/package/flatiron-passport

https://github.com/travist/flatiron-passport

Пожалуйста, прочтите README.md о том, как его использовать и примените к вашему заявлению.

У меня естьпротестировал его на LocalStrategy, но он должен работать для других стратегий.

Пожалуйста, дайте мне знать иначе.

1 голос
/ 20 марта 2012

Union использует коллекцию before для этого:

var server = union.createServer({
  before: [
    connect.session({ secret: 'keyboard cat' }), // for `passport.session()`
    passport.initialize(),
    passport.session(),

    // etc.
  ]
});

Из документации "API" :

@option before {Array} 
    The `before` value is an array of middlewares, which are used to route and serve incoming 
    requests. For instance, in the example, `favicon` is a middleware which handles requests 
    for `/favicon.ico`.
...