如何将当前登录的用户插入到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>
我有用户详细信息主要问题是如何在将数据插入另一个模式(表)时将当前用户数据插入模式(表)中,所以在这种情况下我们使用一对多关系。
答案 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
变量。