gpt4 book ai didi

javascript - 如何使用 express 和 fetch 打印来自服务器的响应?

转载 作者:行者123 更新时间:2023-12-02 01:49:01 25 4
gpt4 key购买 nike

我在尝试使用来自 express 的响应时收到对象响应,这是我正在使用的 HTML 和客户端 js

    <html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
<form method="post">
<input id="names" name="names" type="text" />
</form>
<button id="send">send</button>
<p id="text"></p>
<script>
document.getElementById("send").addEventListener("click", () => {

let datos = {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
names: document.getElementById("names").value,
}),
};

fetch("/myaction", datos)
.then(function (response) {
document.getElementById("text").innerHTML = response;
})
.catch(() => {
document.getElementById("text").innerHTML = "Error";
});
});
</script>
</body>
</html>

我正在尝试在“文本”元素中使用 server.js 的响应,服务器是

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(express.json())
//Note that in version 4 of express, express.bodyParser() was
//deprecated in favor of a separate 'body-parser' module.
app.use(bodyParser.urlencoded({ extended: true }));

//app.use(express.bodyParser());
app.get('/', function(req, res) {
res.sendFile(__dirname + "/index.html");
});

app.post('/myaction', function(req, res) {
res.send(req.body.names);
});

app.listen(8088, function() {
console.log('Server running');
});

当 fetch 请求 myaction express 返回名称查询时,但我不能在 fetch 上使用它,因为它打印“[object Response]”而不是名称形式的值,我该怎么办?

最佳答案

全局fetch函数返回解析为 Response 的 Promise目的。此对象包含有关响应的所有信息,例如 header 、状态、正文等。要获取响应的正文,您需要先解码响应。

在您的情况下,您需要将正文作为字符串读取,因此我们将使用 response.text() .这是 Response 对象上的一个方法。它还返回一个解析为字符串的 promise 。

fetch("/myaction", datos)
.then(function (response) {
return response.text();
})
.then(function (text) {
document.getElementById("text").textContent = text;
})
.catch(() => {
document.getElementById("text").textContent = "Error";
});

关于javascript - 如何使用 express 和 fetch 打印来自服务器的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70544335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com