Я думаю, что я действительно близок к тому, чтобы понять это.Я просто пытаюсь снова заполнить данные формы после обнаружения ошибки.В моем примере ниже age и platelet_count должны быть заполнены заново, но это не так.
Название модели: Store.js
storeController.js
exports.store_create_post = [
body('age', 'Please enter age').isLength({ min:1 }),
body('platelet_count', 'Please enter platelet count').isLength({ min: 1 }),
// sanitizeBody('age').escape(),
(req, res, next) => {
//Extract the validation errors from a request.
const errors = validationResult(req);
//Store form values for post data when error caught
var predModel = new Store(
{
age: req.body.age,
platelet_count: req.body.platelet_count
}
);
if (!errors.isEmpty()) {
//Validation or Sanitation checks did not pass
res.render('predictionModel', {title: 'Risk Calculator', Store: predModel, errors: errors.array()});
return;
}
Я думаю, что моя проблема в том, что я не могу понять, чтоаргумент в res.render (Store: predModel) делает.Я могу переключить аргумент в обратном направлении (predModel: Store), и он все еще работает так же.
Вот мои маршруты:
index.js
//Get request for PredctionModel Form
router.get('/predictionModel', storeController.store_create_get);
//Post request for PredictionModel
router.post('/predictionModel', storeController.store_create_post);
Любой совет приветствуется.
Обновление,Вот моя страница формы с большей частью удаленного контента для удобного просмотра:
_modelForm.pug
mixin predictionModelForm(store = {})
form(action="/predictionModel" method="POST" class="card")
label(for="age") How old is the patient (years)?
input(type='number', name='age', style='width: 100px;', placeholder="40-89")
input(type="submit" value="Predicted Risks" class="button" style='width: 50%;')