Javascript passport.js中的Date.now无法完成

Javascript passport.js中的Date.now无法完成,javascript,node.js,mongodb,mongoose,passport.js,Javascript,Node.js,Mongodb,Mongoose,Passport.js,当我在nodejs网站上通过facebook创建用户时,我想分配registerdate。我用的是护照。 如果我使用本地提供者,则可以在Mongoose模式中使用 regisDate: { type:Date, 'default': Date.now }, 但在passport facebook中,这是我的代码: function(accessToken, refreshToken, profile, done) { User.findOne({'facebook.

当我在nodejs网站上通过facebook创建用户时,我想分配registerdate。我用的是护照。 如果我使用本地提供者,则可以在Mongoose模式中使用

regisDate: {
    type:Date,
    'default': Date.now
  },
但在passport facebook中,这是我的代码:

function(accessToken, refreshToken, profile, done) {
    User.findOne({'facebook.id': profile.id}).exec()
      .then(user => {
        if (user) {
          return done(null, user);
        }

        user = new User({

          firstName: profile.first_name,
          lastName: profile.last_name,
          address: '',
          regisDate: Date.now,
          birthday: profile.birthday,

          email: profile.emails[0].value,
          role: 'user',
          provider: 'facebook',
          facebook: profile._json
        });
        user.save()
          .then(user => done(null, user))
          .catch(err => done(err));
      })
      .catch(err => done(err));
  }));
当继续时,它会在页面中返回一个错误,如下所示

ValidationError: CastError: Cast to Date failed for value "function now() { [native code] }" at path "regisDate"
   at MongooseError.ValidationError (/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/error/validation.js:22:11)
   at model.Document.invalidate (/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/document.js:1411:32)
   at model.Document.set (/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/document.js:696:10)
   at model.Document.set (/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/document.js:541:18)
   at model.Document (/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/document.js:67:10)
   at model.Model (/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/model.js:41:12)
   at new model (/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/model.js:3200:11)
   at passport.js:24:16
From previous event:
   at model.wrappedPointCut [as save] (/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/document.js:1893:14)
   at passport.js:37:14
   at tryOnImmediate (timers.js:534:15)
   at processImmediate [as _immediateCallback] (timers.js:514:5)
From previous event:
   at Strategy._verify (passport.js:19:8)
   at /home/gema/Desktop/stash/tx/node_modules/passport-oauth2/lib/strategy.js:193:24
   at /home/gema/Desktop/stash/tx/node_modules/passport-facebook/lib/strategy.js:181:5
   at passBackControl (/home/gema/Desktop/stash/tx/node_modules/oauth/lib/oauth2.js:125:9)
   at IncomingMessage.<anonymous> (/home/gema/Desktop/stash/tx/node_modules/oauth/lib/oauth2.js:143:7)
   at emitNone (events.js:85:20)
   at IncomingMessage.emit (events.js:179:7)
   at endReadableNT (_stream_readable.js:913:12)
   at _combinedTickCallback (internal/process/next_tick.js:74:11)
   at process._tickCallback (internal/process/next_tick.js:98:9)
ValidationError:CastError:Cast to Date路径“regisDate”处的值“function now(){[native code]}”失败
在MongooseError.ValidationError(/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/error/validation.js:22:11)
在model.Document.invalidate(/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/Document.js:1411:32)
位于model.Document.set(/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/Document.js:696:10)
在model.Document.set(/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/Document.js:541:18)
在model.Document(/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/Document.js:67:10)
在model.model(/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/model.js:41:12)
在新模型中(/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/model.js:3200:11)
在passport.js:24:16
从以前的事件:
在model.wrappedPointCut[as save](/home/gema/Desktop/stash/tx/node_modules/mongoose/lib/document.js:1893:14)
在passport.js:37:14
在tryOnImmediate(timers.js:534:15)
在processImmediate[as_immediateCallback](timers.js:514:5)
从以前的事件:
在战略上验证(passport.js:19:8)
at/home/gema/Desktop/stash/tx/node_modules/passport-oauth2/lib/strategy.js:193:24
at/home/gema/Desktop/stash/tx/node_modules/passport facebook/lib/strategy.js:181:5
在passBackControl中(/home/gema/Desktop/stash/tx/node_modules/oauth/lib/oauth2.js:125:9)
在收到消息时。(/home/gema/Desktop/stash/tx/node_modules/oauth/lib/oauth2.js:143:7)
在emitNone(events.js:85:20)
在IncomingMessage.emit(events.js:179:7)
在endReadableNT(_stream_readable.js:913:12)
at _combinedTickCallback(内部/流程/下一步_tick.js:74:11)
在进程中。_tick回调(内部/process/next_tick.js:98:9)
如何通过passport调用Date.now功能正常?
谢谢。

Date.now
是一个函数,你应该这样使用:
Date.now()
如果你想得到时间戳

Date.now
是一个函数,你应该这样使用:
Date.now()
如果你想得到时间戳

嘿,谢谢!无论如何,我有另一个奇怪的解决方案,我没有注意到。所以我在我的users.model模式中声明regisDate:{type:Date,'default':Date.now}它仍然有效。所以我不必把它放在我的护照上。谢谢!无论如何,我有另一个奇怪的解决方案,我没有注意到。所以我在我的users.model模式中声明regisDate:{type:Date,'default':Date.now}它仍然有效。因此,我不必把它放在我的passport.js中