мне удалось получить мой пользователь обновляет свой профиль, но я пошел в проблему: когда мой пользователь хочет изменить свое имя, я сталкиваются с двумя проблемами:Проверьте, не указаны ли в базе данных имя пользователя?
- Если мой пользователь хочет изменить к существующему имени пользователя в базе данных он будет обновляться по существующему имени пользователю (не пользователь Расчетный)
- Когда запрашиваемое имя пользователь не Existe в базе данных, она не будет обновления, потому что нет никакого существующего имени пользователя
Вот мой код, чтобы получить все других полей, но только имя пользователя ...
exports.update = function(req,res){
req.checkBody('username', 'Email is required').notEmpty().isEmail();
req.checkBody('password', 'Password is required').notEmpty();
req.checkBody('name', 'Name is required').notEmpty();
req.checkBody('surname', 'Surname is required').notEmpty();
req.checkBody('codePostal', 'Code postal is required').notEmpty();
req.checkBody('phoneNumber', 'Téléphone is required').notEmpty();
req.checkBody('address', 'Address is required').notEmpty();
req.checkBody('town', 'Town is required').notEmpty();
var errors = req.validationErrors();
console.log(errors);
if (errors) {
res.status(400).send(errors);
return;
}
var salt = bcrypt.genSaltSync(10),
hash = bcrypt.hashSync(req.body.password, salt);
User.findOne({ username: req.body.username }, function(err, user) {
if (err) {
return res.status(400).send('Error updating account.');
}
user.username = req.body.username;
user.password = hash;
user.name = req.body.name;
user.surname = req.body.surname;
user.codePostal = req.body.codePostal;
user.phoneNumber = req.body.phoneNumber;
user.address = req.body.address;
user.town = req.body.town
user.save(function(err) {
if (err) {
console.log(err);
res.status(500).send('Error updating account.');
return;
}
res.status(200).send('Account updated.');
});
});
}
Вслед за
userRoute = require('./server/api/user/index');
app.post('/account/update', authorizeRequest, userRoute.update);
function authorizeRequest(req, res, next) {
if (req.isAuthenticated()) {
next();
} else {
res.status(401).send('Unauthorized. Please login.');
}
}
Я уже пытался вложенные запросы, но это просто не работает ...: -/
Мое имя пользователя поле уже уникален, вы не можете создать учетную запись с тем же именем уже! – antoine2vey