【问题标题】:Method findOrCreate() is not resolved from my user model方法 findOrCreate() 未从我的用户模型中解析
【发布时间】:2019-03-24 07:52:55
【问题描述】:

我正在尝试使用 Passport 在 Node.js 中实现社交身份验证,因此我需要在配置我的 Facebook 身份验证策略时使用 findOrCreate()。 这是我的 facebook.js 配置发生的地方:

var passport = require('passport');
var FacebookStrategy = require('passport-facebook');

var User = require('../models/user');
var config = require('../_config');
var init = require('./init');

passport.use(new FacebookStrategy({
    clientID: 1900216703426978,
    clientSecret: 'f2c2ee6069de323109cb9347fad01026',
    callbackURL: "http://localhost:3000/passport/facebook/callback"
},

User.findOrCreate({ facebookId: profile.id }, function (err, user) {
    return cb(err, user);
})

));

init();

module.exports = passport;

这是我的模型/user.js

'use strict';

module.exports = (sequelize, DataTypes) => {
  const user = sequelize.define('user', {
    firstName: DataTypes.STRING,
    lastName: DataTypes.STRING,
    email: DataTypes.STRING,
    password: DataTypes.STRING,
  }, {});
  user.associate = function(models) {
    // associations can be defined here
  };
  return user;

}

基于来自http://docs.sequelizejs.com/manual/tutorial/models-usage.html 的文档, 我认为 findOrCreate() 是可用于模型的内置方法。 但是在我的 facebook.js 中有一个下划线 findOrCreate() 提到该方法未解决。

我已确定我需要正确的目录,并且我还尝试了通过此链接的解决方案:What is function User.findOrCreate doing and when is it called in passport? 这还需要一个方法 findOne() 也未解决。

我是在我的模型/user.js 中创建这些函数还是我的用户模型有问题?如果我缺少提供任何代码,请告诉我。

【问题讨论】:

    标签: node.js sequelize.js passport.js


    【解决方案1】:

    您必须连接 sequalize 才能读取您的模型,例如:

    // ./database.js
    
    const Sequelize = require('sequelize')
    const sequelize = new Sequelize(yourDatabaseOpts)
    const User = require('./models/user')(sequelize, Sequelize)
    module.exports = { User }
    

    然后,当您想使用用户时,请执行例如以下:

    const User = require('./database').User
    User.findOrCreate(...)
    

    【讨论】:

    • 这是一个非常愚蠢的问题,但我应该在 (yourDatabaseOpts) 中写些什么?你能给我举个例子吗?
    • 这可能会帮助您朝着正确的方向前进:stackoverflow.com/questions/20431049/…
    猜你喜欢
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    相关资源
    最近更新 更多