javascript - 在 NodeJS 中响应后停止显示 JSON 结果
问题描述
我在 nodejs 应用程序中有一个 response.send:
this.app.post('/profile', (req, res) => {
let password = req.body.password;
let newWallet = operator.createWalletFromPassword(password);
let projectedWallet = projectWallet(newWallet);
return res.send(projectedWallet);
});
每次我在 html 中按下按钮时,它总是会做我的帖子并在 html 页面中返回 JSON 结果。
{"id":"f4c02f2463c8f83218f324d4193e08b8812fe914e24063217d29e65966abbe85","addresses":[]}
但是我不想看到它,那么我怎样才能隐藏或重定向到另一个页面(比如我之前设置的'/profile')?
编辑:这是我的客户端代码
<form action="/profile" method="post">
<p>
<% var ten = user.username %>
<strong>id</strong>: <%= user.id %><br>
<strong>username</strong>: <%= ten %><br>
<strong>password</strong>: <%= user.password %>
</p>
<p id="passwd" name="passwd" ><%= user.username %></p>
<textarea id="myTextArea" cols=50 rows=10></textarea>
<!-- these fields will be sent to server -->
<input type="hidden" name="username" value="<%= user.username %>">
<input type="hidden" name="password" value="<%= user.password %>">
<button type="submit" class="btn btn-warning btn-lg" onclick="/profile">Wallet</button>
</form>
解决方案
问题是您正在从浏览器到节点进行 POST。此 POST 的结果将由浏览器显示。
如果您不想看到 JSON 数据,请更改:
return res.send(projectedWallet);
类似于:
res.redirect('new url');
或者:
res.render('some page');
或者:
res.send('I hate json! ;)');
如果你真的想要 JSON,我建议从:
return res.send(projectedWallet);
至:
res.json(projectedWallet);
因为这会设置所有正确的标头并正确地对 JSON 输出进行字符串化。
更新
如果您想创建一个将发布您的值然后将 JSON 放入文本区域的表单,正如您在对此答案的评论中描述的那样,那么您需要使用客户端 java 脚本和 AJAX 调用。
有关详细信息,请参阅https://stackoverflow.com/a/46642899/1253074。
推荐阅读
- c - 为什么 tcache bin 与 arena 相关联?
- r - 如何知道向量是否由相同的元素组成?
- c++ - C ++中的计时计时器加倍
- java - 我的运动冻结了,我不明白为什么
- amazon-web-services - 如何强制删除 S3 存储桶中的所有对象版本,然后最终使用 aws-sdk-go 删除整个存储桶?
- docker - docker 需要虚拟化
- java - 如何在 php 上读取 Java 提交的数据?
- python - FFT 图像的 IFFT 导致原始图像出现奇怪的上下重叠
- python - Python - 将联系人保存到通讯录并打印通讯录
- node.js - NodeJS rhea AMQP 客户端的故障转移