首页 文章

如何将当前登录的用户插入到mongoose数据库中 . 在应用程序中使用护照js

提问于
浏览
1

如何将当前登录的用户插入到mongoose数据库中 . 任何人都可以帮助我 . 我已经创建了一个架构,现在想在插入数据到架构时插入登录用户的ID .

var userSchema = mongoose.Schema({

    local            : {
        email        : String,
        password     : String,
    }

});


//and new scheme is. 

var contact_user_Schema = mongoose.Schema({
        user_name:String,
        name: String,
        title: String,
        company_name: String,
        email: String,
        gender: String,
        mobile_no: String,
        alt_mobile_no: String,
        address: String,
        city: String,
        group_name: String,
        website_url: String,
        DOB:String
});

现在我想插入登录用户的当前用户ID .
对于示例应用程序,您可以按照Authentication in Node.js and Express.js with Passport.js part 1

我有用户详细信息我正在使用EJS

<br>
<pre>
    <p>
        <strong>id</strong>: <%= user._id %><br>
        <strong>email</strong>: <%= user.local.email %><br>
        <strong>password</strong>: <%= user.local.password %>
    </p>
</pre>

我有用户详细信息主要问题是如何在将数据插入另一个模式(表)时将当前用户数据插入模式(表)中,因此在这种情况下我们使用一对多关系 .

3 回答

  • 3

    使用Passport轻松获取登录用户 .

    由于您使用的是快速框架,因此您可以从快速中间件获取登录的用户对象 .

    如果用户已登录,则可以使用以下属性在每个快速路由方法中获取当前用户:

    req.user
    

    做一个console.log,看看你需要从用户那里获取的所有细节 .

  • 0

    下面是我用来签署用户的本地注册策略,创建用户对象并使用mongoose将其添加到我的mongoDB中的users集合中 .

    var LocalStrategy = require('passport-local').Strategy,
    User = require('mongoose').model('User')
    
    module.exports = function(passport){
    
    passport.use('local-signup', new LocalStrategy(function(username, password, done){
        User.findOne({username: username}, function(err, user){
            if(err) { return done(err) }
            if(user) { return done(null, false) }
            else {
                var newUser = new User()
                newUser.username = username
                newUser.password = newUser.generateHash(password)
                newUser.downloads = []
                newPassword = []
    
                newUser.save(function(err){
                    if(err) { throw err }
                    return done(null, newUser)
                })
            }
        })
    }))
    }
    

    如果要将用户添加到会话用户的数据库中,您可能需要执行以下操作:

    var newUser = req.user
    newUser.save(....
    

    希望能帮助到你 .

  • 1

    在express.js中它是's simple to find the user'的信息 . 您可以通过调用 req.user 来获取用户对象,然后使用 req.user.id 获取用户ID .

    例如,您可以使用以下内容:

    router.get('/user', function(req, res){
      var user_id = req.user.id
    });
    

    您将使用用户ID填充 user_id 变量 .

相关问题