我如何获取textarea数据Node js



我无法发送<textarea>的数据给node js, node js看不到我发送的数据

For Fetch data to Node Js


continueBtn.addEventListener("click", async () => {
console.log(myMsg.value)
console.log(typeof(myMsg.value))
const req = await fetch("/sendmsg", {method: "POST",body: myMsg.value}) ;
console.log("Fetched")
})

For get data in Node js

const {userMessage} = Object.keys(req.body)

您正在传递一个字符串给body。因为你没有重写它,它将被赋予一个text/plain内容类型。

在服务器上,您希望req.body包含一个对象。

您还没有向我们展示您在服务器端代码中配置了什么(如果有的话)正文解析中间件,但是没有一个常见的中间件会将text/plain转换为对象。

你应该:

  • 确保您配置了一个body解析中间件
  • 编码你正在传递给body的数据(例如与URLSearchParams),所以它有名称=值对,而不是一个普通的字符串。

如果你最终传递一个字符串(例如,如果你传递一个JSON字符串而不是一个URLSearchParams对象),那么你还需要设置一个Content-Type请求头匹配你的数据格式。

"const {userMessage} = Object.keys(req.body)">

我不明白为什么你希望在你粘贴的代码中有一个userMessage键。有可能数据正在正确传递,但您试图访问错误的密钥。我会尝试登录您的服务器代码调试响应格式作为第一步:console.log(JSON.stringify(req.body))

让我知道这是否对你的工作有足够的帮助,如果没有,我可以绕回来。

最新更新