将表单值提交给节点JS方法并在同一页面上显示结果

时间:2016-07-04 04:13:06

标签: html node.js

我想要的是当用户点击提交按钮时,将发送到服务器的电子邮件字段然后返回结果(如果是否保存在DB中的电子邮件)在同一页面上。

我的代码:

<form id="mc-form"   action="http://local_host:8081/ttttt" method="post" enctype="multipart/form-data">
   <input type="email" value="" name="dEmail" class="email" id="mc-email" placeholder="type email &amp; hit enter" required=""> 
   <input type="submit" name="subscribe" >
   <label for="mc-email" class="subscribe-message"></label>
</form>

但是,除非我从上面的代码中删除id="mc-form",否则值不会传递给服务器。如果我删除了id="mc-form",那么会显示一个包含操作结果的新页面。但是,我只想在同一页面上显示结果。

节点JS代码如下:

app.post('/ttttt', function (req,res){
    console.log('Came in');
    var form = new formidable.IncomingForm();

    form.parse(req, function (err, fields, files) {
        //Store the data from the fields in your data store.
        //The data store could be a file or database or any other store based
        //on your application.
        res.writeHead(200, {
            'content-type': 'text/plain'
        });
        res.write('received the data:\n\n');
        res.end(util.inspect({
            fields: fields

        }));
    });
});

1 个答案:

答案 0 :(得分:0)

有两种方法:

1)您可以在渲染页面时传递结果参数。然后你可以通过html中的EJS读取数据。

2)其次是你可以在jquery中使用ajax调用来从服务器获取响应数据而不刷新页面。

您上面的代码会将json数据返回到一个新的空白页面,而不会执行任何其他操作。