gpt4 book ai didi

javascript - Req.body为空node.js和express

转载 作者:行者123 更新时间:2023-12-02 23:52:52 30 4
gpt4 key购买 nike

我试图将字符串从客户端页面发送到服务器,但服务器收到一个空对象。这是我的客户端代码:

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);

最佳答案

从express 4.16.0开始,您可以使用app.use(express.json());从请求中获取json数据,在您的情况下是这样。您不需要使用 bodyparser 等。

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(express.json())// add this line

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);

关于javascript - Req.body为空node.js和express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55565442/

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