У меня было много проблем, когда я хочу получить информацию из пользовательской модели. Я прочитал некоторые решения, но я не понял.Понимание сеанса в sailsJs с паспортом
Это мой код: * AuthController
var passport = require('passport');
module.exports = {
_config: {
actions: false,
shortcuts: false,
rest: false
},
login: function(req, res) {
passport.authenticate('local', function(err, user, info) {
if ((err) || (!user)) {
return res.send({
message: info.message,
user: user
});
}
req.logIn(user, function(err) {
if (err) res.send(err);
return res.send({
message: info.message,
user: user
});
});
})(req, res);
},
logout: function(req, res) {
req.logout();
res.redirect('/');
},
signup: function (req, res) {
var data = req.allParams();
User.create({email:data.email,password:data.password,name:data.name}).exec(function(error,user){
if(error) return res.negotiate(err);
if(!user)return res.negotiate(err);
return res.ok();
});
}
};
*view
<h1>List of my dates</h1>
<h1><%= email %></h1>
<h1><%= req.user.name %></h1>
*model
attributes: {
email: {
type: 'email',
required: true,
unique: true
},
password: {
type: 'string',
minLength: 6,
required: true
},
toJSON: function() {
var obj = this.toObject();
delete obj.password;
return obj;
}
},
beforeCreate: function(user, cb) {
bcrypt.genSalt(10, function(err, salt) {
bcrypt.hash(user.password, salt, function(err, hash) {
if (err) {
console.log(err);
cb(err);
} else {
user.password = hash;
cb();
}
});
});
}
};
только работает, если я использую res.render ('вид', {электронная почта: req.user.email}), но я хотел бы использовать пользовательские данные во многих представлениях. Я не могу написать методы с текущими параметрами пользователя, потому что не работает.
Спасибо.
FYI, метод экземпляра модели (toJson) опускается в v1, поэтому я не буду рассчитывать на то, что это сработает. См. В конце здесь: http://0.12.sailsjs.com/documentation/concepts/models-and-orm/models –