yaNastia
@yaNastia

Как задать дефолтное значение свойству юзера?

Нужно что бы при регистрации нового юзера, свойство аватар было по умолчанию, то есть когда я создала нового юзера и зашла в приложение, то отображается дефолтная картинка. А если я хочу ее поменять то захожу в профайл и там уже в инпуте задаю нужную мне урлу нового аватара.
Как задать дефолтную урлу на аватар при создании юзера (например эту: https://images.fineartamerica.com/images-medium-la... ?

Модель:

const mongoose = require('mongoose');
const bcrypt = require('bcrypt-nodejs');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
    name: {type:String},
    email: {type:String},
    phonenumber: {type:Number},
    password: {type:String},
    avatar: {type:String},
    lastlogin: {type:Date}
});


Юзер:

const mongoose = require( 'mongoose' );
const User = require('../models/user');
const config = require('../config');

exports.signup = function(req, res){
    // Check for registration errors
    const name = req.body.name;
    const email = req.body.email;
    const phonenumber = req.body.phonenumber;
    const password = req.body.password;
    const  avatar = req.body.avatar;

    if (!name ||  !email || !phonenumber || !password) {
        return res.status(422).json({ success: false, message: 'Posted data is not correct or incomplete.'});
    }

    User.findOne({ email: email }, function(err, existingUser) {
        if(err){ res.status(400).json({ success: false, message:`Error processing request ${err}`}); }

        // If user is not unique, return error
        if (existingUser) {
            return res.status(201).json({
                success: false,
                message: 'email already exists.'
            });
        }
        // If no error, create account
        let oUser = new User({
            name: name,
            email: email,
            phonenumber: phonenumber,
            password: password,
            avatar: avatar
        });

        oUser.save(function(err) {
            if(err){ res.status(400).json({ success: false, message:`Error processing request ${err}`}); }

            res.status(201).json({
                success: true,
                message: 'User created successfully, please login to access your account.'
            });
        });
    });
};

exports.getuserDetails = function(req, res){
    User.find({_id:req.params.id}).exec(function(err, user){
        if(err){ res.status(400).json({ success: false, message: `Error processing request ${err}`}); }
        res.status(201).json({
            success: true,
            data: user
        });
    });
};

exports.updateUser = function(req, res){
    const name = req.body.name;
    // const email = req.body.email;
    const phonenumber = req.body.phonenumber;
    const userid = req.params.id;
    const avatar = req.body.avatar;

    if (!name || !phonenumber  || !userid) {
        return res.status(422).json({ success: false, message: 'Posted data is not correct or incompleted.'});
    } else {
        User.findById(userid).exec(function(err, user){
            if(err){ res.status(400).json({ success: false, message: `Error processing request ${err}`}); }

            if(user){
                user.name = name;
                user.phonenumber = phonenumber;
                user.avatar = avatar;

            }
            user.save(function(err){
                if(err){ res.status(400).json({ success: false, message:`Error processing request ${err}`}); }
                res.status(201).json({
                    success: true,
                    message: 'User details updated successfully'
                });
            });
        });
    }
};
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@StockholmSyndrome
avatar: {
  type: String,
  default: 'https://images.fineartamerica.com/images-medium-large/alien-face-.jpg'
}

так?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы