在Express中作为POST请求的结果呈现视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Express中作为POST请求的结果呈现视图相关的知识,希望对你有一定的参考价值。

我有一个与条带集成的基本节点应用程序。客户端javascript生成一个令牌,该令牌在POST请求中发送到服务器。然后,服务器向条带API发送进行支付的令牌。我想将用户重定向到显示某些信息的页面,例如付款成功或付款错误。

当我将res.render("/charge", {<some-JSON>});放在处理POST请求的代码中时,它会将页面/charge作为对POST请求的响应发送。有没有办法向用户发送一个页面作为响应,而不是发送POST请求响应?

节点片段:

app.post(req, res) {
    // Some Code
}
答案

从我收集的帖子和评论。您正在寻找一种在您的网页中显示Stripe响应数据的方法。

而不是使用客户端JavaScript执行传统的AJAX请求,而是使用表单将数据提交到服务器端。

<form action="/stripe" method="post">
  <input type="text" value="whatever" name="batman">
  <button type="submit">Pay</button>
</form>

在服务器端,使用app.use('/stripe')创建端点作为示例,但端点必须与action=""属性中的值匹配。然后简单地使用条带响应呈现页面。

app.use('/stripe', function(req, res) {
  // whatever code
  res.render('/charge', {JS OBJECT});
});

以上是关于在Express中作为POST请求的结果呈现视图的主要内容,如果未能解决你的问题,请参考以下文章

在 Express/Jade 视图中访问当前请求

来自 React 的 Express POST 请求返回空正文

使用 Mongoose/Express/Node 在一个 POST 路由中保存多个模型文档

Node.js + Express POST 请求返回未定义

将状态对象作为POST主体发送并在Express服务器中按未定义的方式接收它

在使用 express 呈现页面之前等待所有 mySql 请求完成