【问题标题】:How to reference Mongoose data model from another file如何从另一个文件中引用 Mongoose 数据模型
【发布时间】:2015-05-12 11:02:09
【问题描述】:

如何在 MEAN 应用程序的另一个文件中引用 Mongoose 模型?我在login.js,需要将user.js 引用到findOrCreate 用户。我的路径是错误的还是我错误地初始化了模型?我的错误是undefined is not a function创建用户就行了。

文件结构

root
    models
        user.js
    passport
        login.js
    ...
        ...

login.js

var User = require('./../models/user');
var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;

module.exports = function(passport){

    // Google login
    passport.use(new GoogleStrategy({ 
        clientID: 'id',
        clientSecret: 'secret',
        callbackURL: 'http://127.0.0.1:3000/auth/google_oauth2/callback'
    }, function(accessToken, refreshToken, profile, done) {

        // Problem here? 
        User.findOrCreate({ googleId: profile.id }, function (err, user) {
            return done(err, user);
        });
    }));
};

user.js

var mongoose = require('mongoose');

module.exports = mongoose.model('User', {

    googleId: {type: String, unique: true, required: true}
});

【问题讨论】:

    标签: javascript node.js oauth passport.js


    【解决方案1】:

    更改您的 user.js 文件:

    var mongoose = require('mongoose');
    
    var Schema = mongoose.Schema;
    
    module.exports = mongoose.model(
        'User', 
        new Schema({
             googleId: {type: String, unique: true, required: true}
        }
    ));
    

    您可能对Schema 类了解更多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 2013-08-02
      • 2018-06-21
      • 2018-08-25
      相关资源
      最近更新 更多