express - проблема маршрутизации mongoose-auth - PullRequest
0 голосов
/ 11 июля 2011

У меня есть следующий код coffescript.Игра с экспрессом и mongoose-auth , в соответствии с документацией , при использовании промежуточного программного обеспечения должна позволить сбросить маршрутизацию.Это означает, что после того, как я позвоню / auth / twitter, я должен войти через twitter.К сожалению по какой-то причине я получил ошибку 404.Есть идеи?

Заранее спасибо.

express       = require 'express'
mongoose      = require 'mongoose'
mongoose_auth = require 'mongoose-auth'

UserSchema = new mongoose.Schema {}
User

UserSchema.plugin mongoose_auth, {
  everymodule: {
    everyauth: {
      User: () ->
        return User
    }
  }
  twitter: {
    everyauth: {
      myHostname:     'http://localhost:3000'
      consumerKey:    ''
      consumerSecret: ''
      redirectPath:   '/'
    }
  }
}

mongoose.model 'User', UserSchema

mongoose.connect 'mongodb://localhost/foobar'

User = mongoose.model 'User'

app = module.exports = express.createServer()

app.configure ->
  app.set 'views', "#{__dirname}/views"
  app.set 'view engine', 'jade'
  app.use require('stylus').middleware { src: "#{__dirname}/public" }
  app.use express.static "#{__dirname}/public"
  app.use express.bodyParser()
  app.use express.methodOverride()
  #app.use app.router
  app.use express.cookieParser()
  app.use express.session { secret: 'foobarmoocowetc' }
  mongoose_auth.middleware()

app.configure 'development', () ->
  app.use express.errorHandler {
    dumpExceptions: true
    showStack: true
  }

app.configure 'production', () ->
  app.use express.errorHandler()

app.get '/', (req, res) ->
  res.render 'page/index'

mongoose_auth.helpExpress app

app.listen 3000
console.log 'Express server listening on port %d in %s mode', app.address().port, app.settings.env

1 Ответ

2 голосов
/ 19 июля 2011

Вы не помещаете mongoose_auth.middleware () в список промежуточного программного обеспечения Express.Вам нужно

app.use mongoose_auth.midleware ()

У вас, как вам кажется, промежуточное ПО просто создается и игнорируется.Возможно, вы следовали примеру в README, но он настраивает свое промежуточное ПО, когда он вызывает createServer, а вы используете app.use, что хорошо, но вам нужно передать функцию промежуточного ПО на app.use, чтобы правильно зарегистрировать ее.

Это, по крайней мере, одна проблема.Исправьте это и посмотрите, что произойдет.Существует множество деталей конфигурации, которые должны быть идеальными, чтобы все работало, поэтому вам могут потребоваться и другие настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...