简体   繁体   English

Derby.js出现Derby Auth错误

[英]Derby.js with Derby Auth errors

I just start with Derby and started out with integrating MongoDB and derby-auth. 我只是从Derby开始,然后从整合MongoDB和derby-auth开始。 However, I am having troubles with that and can't figure it out. 但是,我对此有麻烦,无法解决。 The following code returns the stacktrace below it. 以下代码返回其下面的堆栈跟踪。 Finding out what causes the error is really hard. 找出导致错误的原因真的很困难。 This is a new project generated with derby -c new project. 这是一个由derby -c new项目生成的新项目。 All I know is that it's related to the auth.store(store) line. 我所知道的是,它与auth.store(store)行有关。

UPDATE : I am also having this problem with the example/ in derby-auth, but only on my first request so I guess it would be relate to the database connection. 更新 :我在derby-auth中的example/也有这个问题,但仅在我的第一个请求上,所以我想它与数据库连接有关。

http = require 'http'
path = require 'path'
express = require 'express'
gzippo = require 'gzippo'
derby = require 'derby'
app = require '../app'
serverError = require './serverError'
auth = require('derby-auth')
MongoStore = require('connect-mongo')(express)


## SERVER CONFIGURATION ##

expressApp = express()
server = http.createServer expressApp

derby.use(require 'racer-db-mongo')
derby.use(derby.logPlugin)
store = derby.createStore
  listen: server
  db:
    type: 'Mongo'
    uri: 'mongodb://localhost/admin'

module.exports = server
auth.store(store)

ONE_YEAR = 1000 * 60 * 60 * 24 * 365
root = path.dirname path.dirname __dirname
publicPath = path.join root, 'public'

# Authentication strategies (providers actually)
strategies =
  facebook:
    strategy: require('passport-facebook').Strategy
    conf:
      clientID: 'boo'
      clientSecret: 'boo'

# Authentication optionss
options =
  domain: (if process.env.NODE_ENV is 'production' then "http://www.mydomain.com" else "http://localhost:3000" )

expressApp
  .use(express.favicon())
  # Gzip static files and serve from memory
  .use(gzippo.staticGzip publicPath, maxAge: ONE_YEAR)
  # Gzip dynamically rendered content
  .use(express.compress())

  # Uncomment to add form data parsing support
  .use(express.bodyParser())
  .use(express.methodOverride())

  # Uncomment and supply secret to add Derby session handling
  # Derby session middleware creates req.session and socket.io sessions
  .use(express.cookieParser())
  .use(store.sessionMiddleware
    secret: 'mooo'
    cookie: {maxAge: ONE_YEAR}
    store: new MongoStore({ url: 'mongodb://localhost/admin' })
  )

  # Adds req.getModel method
  .use(store.modelMiddleware())

  # Authentication
  .use(auth.middleware(strategies, options))

  # Creates an express middleware from the app's routes
  .use(app.router())
  .use(expressApp.router)
  .use(serverError root)


## SERVER ONLY ROUTES ##

expressApp.all '*', (req) ->
  throw "404: #{req.url}"

Stack Trace: 堆栈跟踪:

TypeError: Cannot read property '_at' of undefined
    at Model.mixin.proto._createRef ($derbypath/node_modules/derby/node_modules/racer/lib/refs/index.js:158:20)
    at Model.mixin.proto.ref ($derbypath/node_modules/derby/node_modules/racer/lib/refs/index.js:124:19)
    at $derbypath/lib/app/index.js:18:11
    at Object.fail ($derbypath/node_modules/derby/node_modules/racer/lib/descriptor/descriptor.Model.js:268:21)
    at Object.module.exports.events.middleware.middleware.subscribe.add._res.fail ($derbypath/node_modules/derby/node_modules/racer/lib/pubSub/pubSub.Store.js:80:40)
    at module.exports.events.init.store.eachContext.context.guardReadPath.context.guardReadPath ($derbypath/node_modules/derby/node_modules/racer/lib/accessControl/accessControl.Store.js:25:26)
    at next ($derbypath/node_modules/derby/node_modules/racer/lib/middleware.js:7:26)
    at guard ($derbypath/node_modules/derby/node_modules/racer/lib/accessControl/accessControl.Store.js:156:36)
    at next ($derbypath/node_modules/derby/node_modules/racer/lib/middleware.js:7:26)
    at run ($derbypath/node_modules/derby/node_modules/racer/lib/middleware.js:10:12)
    at $derbypath/node_modules/derby/node_modules/racer/lib/pubSub/pubSub.Store.js:88:11
    at next ($derbypath/node_modules/derby/node_modules/racer/lib/middleware.js:7:26)
    at Object.run [as subscribe] ($derbypath/node_modules/derby/node_modules/racer/lib/middleware.js:10:12)
    at module.exports.server._addSub ($derbypath/node_modules/derby/node_modules/racer/lib/descriptor/descriptor.Model.js:237:26)
    at Object.Promise.on ($derbypath/node_modules/derby/node_modules/racer/lib/util/Promise.js:29:7)
    at Model.module.exports.server._addSub ($derbypath/node_modules/derby/node_modules/racer/lib/descriptor/descriptor.Model.js:221:29)
    at subscribe ($derbypath/node_modules/derby/node_modules/racer/lib/descriptor/descriptor.Model.js:267:9)
    at Model.module.exports.proto.subscribe ($derbypath/node_modules/derby/node_modules/racer/lib/descriptor/descriptor.Model.js:106:7)
    at $derbypath/lib/app/index.js:17:16
    at onRoute ($derbypath/node_modules/derby/lib/derby.server.js:69:7)
    at app.router ($derbypath/node_modules/derby/node_modules/tracks/lib/index.js:96:16)
    at callbacks ($derbypath/node_modules/derby/node_modules/tracks/node_modules/express/lib/router/index.js:160:37)
    at param ($derbypath/node_modules/derby/node_modules/tracks/node_modules/express/lib/router/index.js:134:11)
    at param ($derbypath/node_modules/derby/node_modules/tracks/node_modules/express/lib/router/index.js:131:11)
    at pass ($derbypath/node_modules/derby/node_modules/tracks/node_modules/express/lib/router/index.js:141:5)
    at Router._dispatch ($derbypath/node_modules/derby/node_modules/tracks/node_modules/express/lib/router/index.js:169:5)
    at dispatch ($derbypath/node_modules/derby/node_modules/tracks/lib/index.js:43:21)
    at Object.middleware [as handle] ($derbypath/node_modules/derby/node_modules/tracks/lib/index.js:58:7)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at app.use.fn ($derbypath/node_modules/express/lib/application.js:121:9)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:127:23)
    at pass ($derbypath/node_modules/express/lib/router/index.js:107:24)
    at Router._dispatch ($derbypath/node_modules/express/lib/router/index.js:170:5)
    at Object.router ($derbypath/node_modules/express/lib/router/index.js:33:10)
    at Context.next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at Context.actions.pass ($derbypath/node_modules/derby-auth/node_modules/passport/lib/passport/context/http/actions.js:77:8)
    at SessionStrategy.authenticate ($derbypath/node_modules/derby-auth/node_modules/passport/lib/passport/strategies/session.js:52:10)
    at attempt ($derbypath/node_modules/derby-auth/node_modules/passport/lib/passport/middleware/authenticate.js:243:16)
    at Passport.authenticate ($derbypath/node_modules/derby-auth/node_modules/passport/lib/passport/middleware/authenticate.js:244:7)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at Passport.initialize ($derbypath/node_modules/derby-auth/node_modules/passport/lib/passport/middleware/initialize.js:69:5)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at Object.handle ($derbypath/node_modules/derby-auth/index.js:71:16)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at Object.module.exports [as handle] ($derbypath/node_modules/derby-auth/node_modules/connect-flash/lib/flash.js:20:5)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at Object.expressInit [as handle] ($derbypath/node_modules/express/lib/middleware.js:31:5)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at Object.query [as handle] ($derbypath/node_modules/express/node_modules/connect/lib/middleware/query.js:44:5)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at Function.app.handle ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:198:3)
    at Object.app.use.fn [as handle] ($derbypath/node_modules/express/lib/application.js:117:11)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at Object.modelMiddleware [as handle] ($derbypath/node_modules/derby/node_modules/racer/lib/session/session.Store.js:119:5)
    at next ($derbypath/node_modules/express/node_modules/connect/lib/proto.js:190:15)
    at store.get.next ($derbypath/node_modules/derby/node_modules/racer/node_modules/connect/lib/middleware/session.js:313:9)
    at $derbypath/node_modules/derby/node_modules/racer/node_modules/connect/lib/middleware/session.js:337:9
    at sessStore.load.sessStore.get ($derbypath/node_modules/derby/node_modules/racer/lib/session/session.Store.js:262:11)
    at process.startup.processNextTick.process._tickCallback (node.js:245:9)

在$ derbypath / lib / app / index.js:18:11中检查此行

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM