Tôi đang làm việc trên một mẫu đăng ký thực sự cơ bản trong Node.js (với Express), và tôi đang cố gắng tìm cách dễ nhất để cung cấp xác nhận biểu mẫu cơ bản. Tôi đã đi với "Express-Validator", mà dường như làm một công việc tốt. Tuy nhiên, mục tiêu của tôi là chỉ hiển thị bất kỳ thông báo xác thực nào được yêu cầu và để để các giá trị được nhập bởi người dùng một mình.Node.js (Express) Biểu mẫu Clears về thông tin
Dường như thông tin yêu cầu không được đưa trở lại vào vị trí res.render mà tôi đoán là hợp lý. Tuy nhiên, tôi đã nhìn ở khắp mọi nơi tôi có thể nghĩ đến và tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào thảo luận về cách giữ cho các trường biểu mẫu được điền sau khi hiển thị thông báo lỗi.
Dưới đây là một đoạn nhỏ mô tả cách tiếp cận của tôi:
post: function(req, res){
var userName = req.body.username;
var password = req.body.password;
//Validate input
req.assert("username", 'Invalid email address.').isEmail();
req.assert("password", 'Password cannot be empty.').notEmpty();
req.assert("passwordConfirm", 'Passwords entered do not match!').equals(password);
//Make sure we have no validation errors
var pageErrors = req.validationErrors();
if(!pageErrors)
{
userModel.CreateUser(userName, password, function(err){
if(err)
{
//there was a problem inserting new user... probably already exists
//will need to check the error to confirm
var dbErrorMessage = "Could not insert record into database!";
if(err.code === 11000)
{
//this is a duplicate entry
dbErrorMessage = "A user with that email address already exists!";
}
res.render('register.html', { pageErrors: [{msg: dbErrorMessage }]});
}
else
{
res.render('register.html', { successMessage: successMessage });
}
});
}
else
{
res.render('register.html', { pageErrors: pageErrors });
}
Đây là những gì mọi người có ý nghĩa khi họ nói rằng "web là không quốc tịch". Bạn cần phải điền lại các giá trị của mình theo cách thủ công sau mỗi yêu cầu. –
Vâng, tôi nhận ra rằng nó sẽ yêu cầu sự can thiệp từ phía máy chủ để trả lại các giá trị, nhưng tôi hy vọng rằng express có thứ gì đó (hoặc phần bổ trợ trung gian) có thể làm điều này cho chúng ta. Tôi sẽ chỉ đi tuyến gửi biểu mẫu AJAX. Dù sao, nó sẽ làm cho trải nghiệm người dùng tốt hơn. – creativename