2017-11-29 11 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を割り当てていますか? firstNameに新しい変数を代入しています: 'var firstName = req.body.FirstName;'。その後、ボディを検証すると、新しい変数ではなくボディ上で検証が行われます。 –

+0

あなたの提案はうまくいきました...私が変数をチェックしていたのはどうしてそれが間違っているのか不思議でした。 –

関連する問題