2017-11-29 3 views
0

비슷한 질문을 보았습니다. 불행히도 새로운 질문을하기 위해 작은 설명을 남기고 충분한 담당자가 없습니다.Node.js 양식 값은 항상 '정의되지 않음'을 반환합니다.

내 등록 양식에서 모든 항목이 비어있는 양식을 제출하더라도 정의되지 않은 유일한 필드이므로 항상 정의되지 않은 상태로 되돌아 오는 FirstName 및 LastName 값을 제출합니다. 여기 내 경로가

/routes/main.js 

router.post('/register', function(req, res){ 
    var firstName = req.body.FirstName; 
    var lastName = req.body.LastName; 
    var email = req.body.email; 
    var username = req.body.username; 
    var password = req.body.password; 
    var cpassword = req.body.cpassword; 

//Validation 
req.checkBody('firstName', 'First name is required!').notEmpty(); 
req.checkBody('lastName', 'Last name is required!').notEmpty(); 
req.checkBody('email', 'E-mail is invalid!').isEmail(); 
req.checkBody('username', 'Username is required!').notEmpty(); 
req.checkBody('password', 'Password is required!').notEmpty(); 
req.checkBody('cpassword', 'Passwords do not match!').equals(password); 


var errors = req.validationErrors(); 

if(errors){ 
    res.render('register', { 
     errors: errors 
    }); 
    console.log('there are form errors'); 
    console.log(errors); 
    console.log(firstName); 
    console.log(lastName); 
} else { 
    console.log('no errors'); 
} 

및 마크 업 폴더입니다

<h2>Student Registration</h2> 
<form method="post" action="/register"> 
<div class="form-group"> 
    <label for="">First Name</label> 
    <input type="text" class="form-control" placeholder="First Name" name="FirstName"> 
</div> 
<div class="form-group"> 
    <label for="">Last Name</label> 
    <input type="text" class="form-control" placeholder="Last Name" name="LastName"> 
</div> 
<div class="form-group"> 
    <label for="">Username</label> 
    <input type="text" class="form-control" placeholder="Username" name="username"> 
</div> 
<div class="form-group"> 
    <label for="">E-mail</label> 
    <input type="text" class="form-control" placeholder="email" name="email"> 
</div> 
<div class="form-group"> 
    <label for="">Password</label> 
    <input type="Password" class="form-control" name="password"> 
</div> 
<div class="form-group"> 
    <label for="">Confirm Password</label> 
    <input type="Password" class="form-control" placeholder="ConfirmPassword" name="cpassword"> 
</div> 
<button type="submit" class="">Register</button> 
</form> 

정말로 나를 bewilders 것은 내가 그들을 CONSOLE.LOG 때 나는 처음과 마지막 이름 값을보고하고 있지만, 그들은 여전히 ​​값을 가지고있다 정의되지 않음. 어떤 제안?

답변

0

유효성 검사에 오타가 있습니다. 귀하의 양식에 FirstNameLastName을 제출했지만 유효성 확인 중에 firsNamelastName

+0

을 확인하고 있습니다.하지만 FirstName에 firstName을 지정하고 firstName을 확인하면 어떻게 될까요? –

+0

req.body.firstName은 (는) 어디에 할당합니까? 첫 번째 이름을 새 변수에 지정하는 것으로 보았습니다 :'var firstName = req.body.FirstName;'. 그런 다음 본문의 유효성을 검사하면 유효성 검사가 새 변수에서 발생하지 않고 본문에서만 수행됩니다. –

+0

당신의 제안이 효과가있었습니다 ... 나는 왜 변수가 039인지 확인하고 싶다면 왜 그런지 궁금했습니다. –