从表格返回时开火#34;提交"

时间:2016-09-12 19:34:50

标签: javascript node.js express handlebars.js

我希望能够在从提交帖子返回时解析值。我无法通过javascript手动启动ajax调用找到一种方法来实现这一目标

网页代码:

<form id="form1" method="post" action="/formSubmit" >
    <input type="text" name="username">
    <input type="text" name="email">
    <input type="submit" value="Submit">
</form>

nodejs服务器上的代码:

router.post('/', function(req, res) {
    console.log("HERE: " + req.body.username);
    console.log("HERE: " + req.body.email);
    res.json({ data1: 'Hello', data2: 'World'});
}

编辑#1:目前这只是呈现&#34; {data1:&#39; Hello&#39;,data2:&#39; World&#39;}&#34;进入浏览器,但我需要解析它

1 个答案:

答案 0 :(得分:0)

表单提交后您想看到什么?您处理POST请求的方式是发送JSON。所以你确实需要AJAX来使你的结果更美观。为了避免使用AJAX,您只需将响应作为HTML文件发送。

当然,您也可以将提交的表单数据传递给模板并将其发送给用户。将您需要的变量传递给模板:

res.render('formsubmit', {data1: 'Hello', data2: 'World'}); 

为此你需要在你的模板目录中有一个名为formsubmit的模板文件(以及根据你的视图引擎结束的文件),它取得给定的变量。 Express将负责创建一个HTML文件。

E.g。对于Handlebars,您可以访问视图文件夹中名为formsubmit.hbs的模板文件中的变量,如:

<p>Hello, my name is {{data}} and not {{data2}}.

另请参阅:https://expressjs.com/en/guide/using-template-engines.html