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

时间:2015-12-28 06:20:10

标签: node.js mongodb mongoose

如何将当前登录的用户插入到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 个答案:

答案 0 :(得分:3)

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

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

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

req.user

执行它的console.log并查看从用户获取所需的所有详细信息。

答案 1 :(得分:1)

这是我用来签署用户的本地注册策略,创建用户对象并使用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(....

希望它有所帮助。

答案 2 :(得分:0)

在express.js中,找到用户的信息很简单。您可以通过调用req.user来获取用户对象,然后使用req.user.id获取用户ID。

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

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

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