Teaching Newbies since 2014

kauress

  • Home
  • Javascript ❤
    • JavaScript
    • Node.js
  • WebDev Tuts
  • screencasts
  • Resources
  • VR & AR
  • Contact
  • Github
  • Twitter
  • YouTube
  • RSS
  • C++
You are here: Home / Apps / Sweet & Sour mongoose.js methods – 3

September 27, 2019 by: Kauress

Sweet & Sour mongoose.js methods – 3

SWEET & SOUR

A short snippet to assist in linking of social media accounts in a userschema when using mongoDB & mongoose.js


async function generateOrFindUser(accessToken, refreshToken, profile, done) {
const email = profile.emails[0].value;
const name = profile.displayName || profile.username;
const facebookId = profile.id;
if (email) {
let updatedUser = await User.findOneAndUpdate({facebookId},{email,name,facebookId}, {'upsert': true, 'new': true}, done);
} else {
var emailError = new Error("Your email privacy settings prevent you from signing in.");
done(emailError, null);
}
}

User schema:

const UserSchema = new mongoose.Schema({
email: {
type: String,
unique: true,
required: true,
lowercase: true
},
password: {
type: String,
required: true,
trim: true,
validate: validatePass
},
name: {
type: String,
unique: true,
required: true,
lowercase: true,
trim: true,
minlength: 4
},
phone: {
type: Number,
trim: true
},
question: {
type: String,
select: true
},
answer: {
type: String,
required: true,
trim: true
},
status: {
type: Boolean,
required: true
},
date: {
type: Date,
default: Date.now
},
facebookId: {
type : String
}
});

Sailormoon Pose Recognition decisions
Udemy milestone reached

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Copyright © 2021 ·Kauress