2016-10-29 6 views
0

Я пытаюсь выяснить, как использовать оператор-express-validator вместе с angularjs и html для отображения ошибок проверки. Моя проблема заключается в невозможности получить доступ к ошибкам . См. Код ниже.Как отображать ошибки экспресс-валидатора с использованием угловых?

routes.js

router.post('/register', function(req, res){ 
var name = req.body.name; 
var email = req.body.email; 
var username = req.body.username; 
var password = req.body.password; 
var password2 = req.body.password2; 

req.checkBody('name', 'Name is required').notEmpty(); 
req.checkBody('email', 'Email is required').notEmpty(); 
req.checkBody('email', 'Email not valid').isEmail(); 
req.checkBody('username', 'Username is required').notEmpty(); 
req.checkBody('password', 'Password is required').notEmpty(); 
req.checkBody('password2', 'Passwords does not match').equals(req.body.password); 

var errors = req.validationErrors(); 

if(errors){ 
    res.render('register.html', { 
     errors: errors 
    }); 
} else { 
    console.log('no errors'); 
}}) 

Я нашел то, что, как представляется, проблема, в моем server.js. Это, кажется, вызывает проблемы между экспресс-и угловыми маршрутами, что делает экспресс-маршрутизацию неудачной и поэтому не передает данные по мере необходимости. Смотри ниже.

app.use(function(req, res){ 
res.sendFile(__dirname + '/app/index.html'); 
}); 
app.use('/', routes); 
app.use('/user', users); 

Если я попробую это, см. Ниже.

app.use('/', routes); 
app.use('/user', users); 
app.use(function(req, res){ 
res.sendFile(__dirname + '/app/index.html'); 
}); 

Это делает экспресс преходящие маршрутизации данных, как я хочу, но, кажется, моя угловая маршрутизация будет пристанет, когда я обновить page- вид не удается правильно загрузить.

Тем не менее, я не знаю, как отображать это, используя ejs или handlebars, но это не соответствует моим потребностям, должен быть способ хранения ошибок с угловым и отображения его с html как-то правильно?

Любая помощь приветствуется!

+0

Вы должны иметь возможность ответить с помощью res.json ({errors: errors}) и использовать массив ошибок с угловой стороны с ng-repeat. Вы сталкиваетесь с проблемами с этим? –

+0

@TalhaAwan Спасибо, но я попробовал его, перейдя в ng-repeat = «err in errors», он ничего не получает:/ – Dennis

ответ

0

Есть ли причина, по которой вы не хотите использовать собственные инструменты проверки углов? Это может быть даже лучше с точки зрения ux, потому что пользователь сразу узнает, если их форма действительна. Она также позволяет делать классные вещи, как отключить кнопку отправки, пока форма не действительна

<button type="submit" ng-disabled="myFormName.$invalid">Submit</button> 

Добавление простой нг-требуется для входов, которые необходимы будут заботиться о большинстве ваших потребностей. Установка типа ввода = «электронная почта» будет проверять правильность адреса электронной почты.

Единственное, что может показаться сложным, - это проверить соответствие паролей, но даже это может быть достигнуто с помощью директивы атрибута.

+0

Нет конкретной причины, почему я просто хочу, чтобы это работало так, как я хочу, и им тоже интересно зная, что вызывает проблему ради знания. Спасибо за совместное решение, так как я, скорее всего, буду продолжать будущие проекты с использованием угловой проверки :) – Dennis