2016-07-07 62 views
0

我正在尝试使用我的HTML形式到node JS方法的POST某些值。之后,我需要将返回结果从NODE JS发回,并将其显示在HTML页面中。如何使用EJS将节点JS的值传回Html

我也使用EJS将值发送回窗体。但是,结果不会显示。

基本上,用户点击HTML表单提交按钮后,数值应被传递到节点的js处理并发送回一个结果Successfailed到HTML文档,其中它会显示。

我的代码如下:

HTML代码:

  <form id="form-register" action="http://localhost:8089/ttt"" method="post" enctype="multipart/form-data"> 

      <input type="logintext" value="" name="nam" class="nameC" id="mc" > 



      <input type="submit" name="subscribe" id="mc-submit-number"> 

      <label >REEEEE <%= titles %></label> 

      </form> 

NODE JS代码:

app.post('/ttt', function (req,res){ 

loginProvider.signUp(params, function(err, data) { 
    if (err) { 

     res.render('index',{title: 'HOME',titles:err.stack 
     }); 
     res.send('WHATTT'); 
    } 
    else { 
     console.log('Result ' + data);   // successful response 
     res.render('index',{title: 'HOME',titles:'SUCCESS' 
     }); 
     res.end('xzxzxzxzxzx'); 
    } 

}); 

} 
+0

尝试增加身体的解析器的任何一部分,就像提到 [这里](HTTP://计算器.COM /问题/ 24800511 /表达-JS-形式的数据)。 – flott

+0

有没有具体的错误?...你检查了浏览器控制台/调试器的错误,而且为什么你需要发送()和结束()..响应已被发送... – Nikhil

+0

已经尝试添加身体分析器。不工作。在Chrome开发人员工具上没有报告错误 – Illep

回答

0

你可以(或者说必须)使用AJAX。

然后,您可以通过发送请求手动发送表单参数到您的节点服务器,并返回包含错误或成功消息的响应对象。

0

你的代码不工作的原因是因为你已经加载了HTML页面的DOM,当你提出这个请求时,EJS工作的唯一方法是如果你重新加载页面,因为EJS只是通过你的文件和字符串替换

我最好的解决方案是对你的'/ ttt'有一个正常的AJAX调用,并让Node.js做'res.send(“SUCCESS”);'并且在你的HTML,你可以设置标签或文档页面“SUCCESS”

与jQuery

$.post("/ttt", function(data, status){ 
    $("#yourLabel").text(data); 
});