如何在node.js中正确缓存表单输入?

时间:2016-03-20 13:13:49

标签: node.js forms caching express ejs

我是node.js的新手,我想做的是将表单处理后输入的表单数据传回输入字段,如果表单中传递的数据有错误(例如:用户名已经在使用中) )。我试图在EJS的帮助下完成它,但表单似乎没有检索到值。

以下是我的app.js代码段:

app.use(bodyParser.urlencoded({
  extended: false
}));

app.use(bodyParser.json());
app.post('/',function(req,res){
  var username = req.body.username;
  res.render('registration', {title: 'Registration',
                            username: username});
});

以下是我的registration.ejs代码段:

<form class="form"  action="/" method="post" name="regForm">

              <div class="form-group">
                <input type="text" value="<% username %>" name="username" class="form-control" id="username" placeholder="Username" onblur="validateUsername(this.value)" required>
              </div>
</form>

发布后我希望用户名字段填写我输入的值,但似乎没有发生。可能是什么原因造成的?

我是否正确地执行此缓存操作,或者有没有办法更好地缓存表单输入?

2 个答案:

答案 0 :(得分:0)

您需要使用bodyParser.urlencoded({ extended: false })表单解析中间件,因为HTML表单提交的是application/x-www-form-urlencoded表单,而不是application/json格式的表单数据。

答案 1 :(得分:0)

我弄清楚出了什么问题。我忘了把&#34; =&#34;在我的EJS代码中&lt;%之后。之后它起作用了。