为了账号安全,请及时绑定邮箱和手机立即绑定

req.body为空的node.js并表达

req.body为空的node.js并表达

富国沪深 2021-04-16 18:15:32
我正在尝试从客户端页面向服务器发送字符串,但是服务器接收到一个空对象。这是我的客户端代码:fetch("/sugestions/sugestions.txt", {  method: "POST",  body: JSON.stringify({ info: "Some data" }),  headers: {    "Content-Type": "application/json; charset=utf-8"  }})  .then(res => {    if (res.ok) console.log("Yay it worked!");    else window.alert("Uh oh. Something went wrong!\n" + res);  });这是我的服务器端代码:const express = require("express");const url = require("url");const fs = require("fs");const bodyParser = require("body-parser");const app = express();const port = process.env.PORT || 8080;app.set("view engine", "ejs");app.use(bodyParser());app.post("/sugestions/*", (req, res) => {  info = JSON.parse(req.body);  fs.appendFile(path("req").pathname, info.info, (err) => {    if (err) res.status(404).end();    else res.status(200).end();  });});app.listen(port);如果重要的话,以下是路径函数:const path = req => url.parse(`${req.protocol}://${req.get("host")}${req.originalUrl}`, true);
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

要访问请求的正文,您需要使用bodyParser。并且您需要明确地告诉bodyParser您需要解析的数据格式。现在进入您的解决方案,更换


app.use(bodyParser());


app.use(bodyParser.json());

app.use(bodyParser.urlencoded({ extended: true }));


查看完整回答
反对 回复 2021-04-22
?
千巷猫影

TA贡献1829条经验 获得超7个赞

将这两行添加到您的代码中


app.use(bodyParser.urlencoded({ extended: true }));

app.use(bodyParser.json());


查看完整回答
反对 回复 2021-04-22
  • 3 回答
  • 0 关注
  • 325 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信