我想实现的功能,其中和管理员使用一个页面可以创建用户。为了实现这一点,我使用。sign up函数,一切都工作得很好,除了一个事实,而不是使用回调成功,在创建用户时,解析注销当前用户。
代码如下
// Create a new announcement with specified title and body.
exports.create = function(req, res) {
var user = new Parse.User();
res.locals.path = req.path;
// Explicitly specify which fields to save to prevent bad input data
userData = req.body;
if(userData.email != "undefined"){
user.set("username", userData.email);
}
if(userData.name != "undefined"){
user.set("name", userData.name);
}
if(userData.surname != "undefined"){
user.set("surname", userData.surname);
}
if(userData.password != "undefined"){
user.set("password", userData.password);
}
if(userData.courses){
if(userData.courses != "undefined"){
var courses = new Array();
courses = userData.courses.split(",");
user.set("courses", courses);
}
}
if(userData.date != "undefined"){
user.set("birthday", userData.date);
}
if(userData.email != "undefined"){
user.set("email", userData.email);
}
if(userData.admin != "undefined"){
if(userData.admin == "on"){
user.set("admin", true);
}else{
user.set("admin", false);
}
}
if(userData.contact != "undefined"){
user.set("contact", userData.contact);
}
user.signUp(null, {
success: function(user) {
res.redirect('/users');
},
error: function(user, error) {
// Show the error message somewhere and let the user try again.
res.send(500, "Error: " + error.code + " " + error.message);
}
});
};
// Create a new tender with specified title and body.
// Update a post based on specified id, title and body.
exports.update = function(req, res) {
var user = new User();
res.locals.path = req.path;
if(req.params.id){
user.id = req.params.id;
}
userData = req.body;
if(userData.name != "undefined"){
user.set("name", userData.name);
}
if(userData.surname != "undefined"){
user.set("surname", userData.surname);
}
if(userData.password != "undefined"){
user.set("password", userData.password);
}
if(userData.courses != "undefined"){
user.set("courses", userData.courses);
}
if(userData.date != "undefined"){
user.set("birthday", userData.date);
}
if(userData.email != "undefined"){
user.set("email", userData.email);
}
if(userData.email != "undefined"){
user.set("username", userData.email);
}
if(userData.admin != "undefined"){
if(userData.admin == "on"){
user.set("admin", true);
}else{
user.set("admin", false);
}
}
if(userData.contact != "undefined"){
user.set("contact", userData.contact);
}
Parse.Cloud.useMasterKey();
user.save().then(function() {
res.redirect('/users');
},
function(err) {
res.send(500, 'Failed saving user');
});
};
这是Parse的一个特性吗?是否有任何方法可以避免当前用户的注销?
signUP方法将替换您当前的用户,并将您作为新用户登录。为了避免admin用户被注销,您需要将其移到自定义云功能中。