Node/Express (最新の製品バージョン) を使用しています
新しいアカウント情報を収集するフォームがあります。ユーザーはユーザー名などを追加できます。
ビュー ハンドラーで、mongodb データベースをチェックして、ユーザー名が一意かどうかを確認します。そうでない場合は、メッセージを生成して元のビューを再読み込みします。元のリクエストは投稿だったので、ユーザーが投稿したデータはすべて req.body にあります。ユーザーが応答で送信したデータを追加したいと思います。具体的には、応答に各値を追加することでそれを行うことができました。しかし、すべての要求データを応答に戻す簡単な方法はありませんか? ビューでそれをレンダリングする方法はありますか(私はejsを使用しています)、ejs変数と組み合わせてres.send(JSON)を試しました。これを行うと、変数が使用できないというエラーが生成されます。
これが私の機能です(users.createUser(req)を無視してください-まだ終わっていません):
createAccount: function(req, res, next){
users.createUser(req);
res.render('create_account', {
layout: 'secure_layout',
title: 'Create Account',
givenName: req.body.givenName,
username: req.body.username,
familyName: req.body.familyName
});
},
そして、これが私の見解です:
<form action="/createAccount" method="post">
<div>
<label>First Name:</label>
<input type="text" name="givenName" value="<%= givenName %>"/><br/>
</div>
<div>
<label>Last Name:</label>
<input type="text" name="familyName" value="<%= familyName %>"/><br/>
</div>
<div>
<label>Username:</label>
<input type="text" name="username" value="<%= username %>"/><br/>
</div>
<div>
<label>Password:</label>
<input type="password" name="password"/>
</div>
<div>
<input type="submit" value="Submit"/>
</div>
</form>
それぞれの値を追加する必要があるのは非常に複雑に思えます。{body: req.body} を試しましたが、値がビューに追加されませんでした。