将数据发送到节点视图而不丢失表单数据

时间:2018-05-20 15:37:11

标签: node.js express redirect

我有以下观点

router.post('/save',
[
  body('name').not().isEmpty().withMessage('name empty'),
  body('surname').not().isEmpty().withMessage('surname empty'),
  body('email').not().isEmpty().withMessage('email empty'),
  body('password').not().isEmpty().withMessage('password empty')
],
(req, res)=>{
  let errors = validationResult(req);
  if (!errors.isEmpty()) {
    req.session.msgs = errors.array({ onlyFirstError: true });
    return res.redirect('/signup');
  }
   //save form data......
});

好的,所以我从登录表单中获取了一些数据,我想回到那个登录表单,并附带一些错误消息。

除了重定向后表单为空外,一切正常。如果我把除了之外的所有东西都说成密码,我会回到表格并且是空的,所以我必须从头开始再填充它。我想回去,名字,姓氏和电子邮件仍在那里并重新输入密码。

有没有办法可以回去,哪些不是空的领域,还有他们的价值观?

谢谢

[node 8.11.1 + express 4.16.3 + express-validator]

1 个答案:

答案 0 :(得分:0)

当您使用node 8.x时,您可以使用nodejs的核心模块

querystring。使用此功能,您可以在查询字符串中发送数据。我们的想法是将收到的参数发送回重定向视图,如

  const params= querystring.stringify({
      "name": body('name'),
      "surname": body('surname'),
      "email": body('email')
       ...
  });
  res.redirect('/signup?' + params);

现在,这些参数将在您的视图中提供,您可以在singup视图中访问这些参数并填写相关字段