저는 실제로 학교 프로젝트에서 일하는데 마이크로 프레임 워크로 데이트 웹 사이트를 운영해야합니다. ExpressJS를 사용하여 NodeJS를 배우기로 선택했으나 비동기식 서버에 대해 고민 중입니다 ... 전자 메일 주소 또는 암호를 업데이트하기 위해 이전 암호를 입력해야하는 프로필 업데이트 양식을 만들려고합니다. 또는 하나의 양식에 둘 다. 그러나 비동기로 나는 형식을 검증하는 방법을 모른다.익스프레스가있는 양식의 선택 입력란
ORM, 유효성 검사기 또는 사용자 관리자 (예 : 여권)를 사용할 수 없습니다. 여기
내가router.post('/changeCredentials', isConnected, (request, response) => {
var user = User.formJSON(request.session.user);
if (User.hashPassword(request.body.old_password, user.salt) === user.password)
{
if (request.body.email !== undefined && request.body.email !== user.email)
{
request.formValidate('email', 'Email not valid').isNotEmpty().isEmail();
request.formValidate('email', 'Email already used').isUnique(User,() => {
if (request.formIsValid)
{
user.email = request.body.email;
request.user.connect(user);
console.log(request.session);
User.update(user,() => {
request.flash('success', 'Email updated');
});
}
});
}
if (request.body.new_password !== undefined && request.body.new_password !== '')
{
request.formValidate('new_password', 'Password is not valid.').isNotEmpty().isLength(6, 255).isGoodPassword();
request.formValidate('new_password', 'Password does not match').isEqualTo(request.body.new_password_conf);
if (request.formIsValid)
{
user.password = request.body.new_password;
User.update(user,() => {
request.flash('success', 'Password changed!');
}, true);
}
}
}
else
{
request.flash('error', 'Bad Old password');
}
response.redirect('/u/profile');
});
Full code here가 (당신이 '경로/사용자에서이 부분을 찾을 수있는 양식을 검증하기 위해
router.get('/profile', isConnected, (request, response) => {
response.render('profile.ejs');
});
두 번째 경로 폼에
첫 번째 경로를 뭘하려 .js ')
도움 주셔서 감사합니다.
'asynchone'의 의미는 무엇이며 어디에 고정 되었습니까? – abdulbarik
죄송 합니다만 비동기식입니다. 내 문제는 2 User.update 콜백에, request.flash가 너무 늦게 실행되고 페이지가 새로 고쳐지면 메시지가 표시되지 않기 때문에 생성되지 않았기 때문입니다. – Snosky