index.jade ファイルに追加したお問い合わせフォームがあり、正常にレンダリングされる jade テンプレートの次のコードを使用して / ルートに投稿リクエストを送信しようとしています。
if enquirySubmitted
.row
h3 Thanks for getting in touch.
else
.row
form.contact-form(method="post" )
input(type='hidden', name='action', value='contact')
.col-lg-4.col-sm-4(class=validationErrors.name ? 'has-error' : null)
input.form-control.input-box(type='text', name='name.full', value=formData['name.full'], placeholder='Your Name')
.col-lg-4.col-sm-4
input.form-control.input-box(type='email', name='email', value=formData.email, placeholder='Your Email')
.col-lg-4.col-sm-4
div(class=validationErrors.enquiryType ? 'has-error' : null)
input.form-control.input-box(type='text', name='enquiryType' value=formData.enquiryType)
.col-md-12(class=validationErrors.message ? 'has-error' : null)
.col-md-12
textarea.textarea-box(name='message')= formData.message
button(type='submit') Send Message
index.js ファイルの投稿コードは次のとおりです。
locals.section = 'contact';
locals.formData = req.body || {};
locals.validationErrors = {};
locals.enquirySubmitted = false;
// On POST requests, add the Enquiry item to the database
view.on('post', { action: 'contact' }, function(next) {
console.log('here');
var newEnquiry = new Enquiry.model(),
updater = newEnquiry.getUpdateHandler(req);
updater.process(req.body, {
flashErrors: true,
fields: 'name, email, phone, message',
errorMessage: 'There was a problem submitting your enquiry:'
}, function(err) {
if (err) {
locals.validationErrors = err.errors;
} else {
locals.enquirySubmitted = true;
}
next();
});
});
私が抱えている問題は、バックエンドで投稿要求が受信されたことを示すためにエラーや「ここ」が表示されないことです。私はこれを解決できず、連絡先フォームを機能させるために他に何をする必要があるかについて混乱しています. keystone demo を見ても役に立ちませんでした。また、index.js ファイルは次の場所にあります。routes/views/index.js