【问题标题】:Trying to create new user尝试创建新用户
【发布时间】:2020-02-13 19:03:42
【问题描述】:

如果存在,则尝试将 Steam 用户更新为用户模式,否则在 mongodb 中创建新的 Steam 用户。但是我得到了下面的错误。我该如何解决这个问题,我做错了吗?

ValidationError: User validation failed: imageURL: Path `imageURL` is required., username: Path
`username` is required., profileURL: Path `profileURL` is required.
const User = require('./models/user');

        User.findOne({ steamId: steamId}, function(err, user){
            if(user){
               return done(null, user);  
            }
            else{
                request(profileURL, function (error, response, body){
                    if (!error && response.statusCode === 200) {
                        var data = JSON.parse(body);
                        var profile = data.response.players[0];

                        var user = new User();
                        user.username = profile.personame;
                        user.profileURL = profile.profileURL;
                        user.profileImageURL = profile.avatarmedium;
                        user.steamId = steamId;

                        user.save(function(err){
                            done(err, user);
                        });
                    }
                    else{
                        done(err, null);
                    }
                });
            }
        });

【问题讨论】:

  • 这也是Sequelize吗?看起来这些字段是必需的,因此您必须填充它们。如果不能,请考虑将它们设置为可选或添加一些占位符值。
  • 解决了,因为我的模型模式设置为 required: true。删除了必需的。
  • 很棒的发现!值得添加一个自我回答,详细介绍并显示您对模型所做的更改。
  • 好的,谢谢:)
  • 这里是不同线程上的新问题stackoverflow.com/questions/58440150/…

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


【解决方案1】:

在我的架构中删除了require: true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-22
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2012-05-12
    • 1970-01-01
    • 2021-08-02
    相关资源
    最近更新 更多