express req.body 返回一个空的 json object

express req.body is returing an empty json object

我已经阅读了所有其他 post 并且我已经验证了 none 中任何一个的解决方案都解决了我的问题。在失眠中,我将内容类型 header 设置为“application/json”,并且在我的任何路由之前应用 express.json() 中间件。最令人沮丧的是 body 在我的 /register 路由中不是空的,但它总是在我的 /login 路由中。我什至尝试使用“router.get('/', express.json(), async (req, res) => {”将中间件直接放入路由中,但无济于事。也当我将路线设置为 post 时,我收到代码为 404 的“无法获取/注册”,但当它是“获取”路线时却没有。在我的注册路线上,同时有一条获取和 post 路线,所以我不明白为什么它与登录路由有什么不同,特别是因为我通过复制和粘贴登录路由 js 文件创建了注册路由。这是应用程序的代码

const express = require("express"),
  bodyParser = require('body-parser'),
  rta = require('./RTAuth.js'),
  mysql = require('mysql'),
  app = express(),
  port = 8080;

//app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
//app.use(bodyparser.urlencoded({ extended : true }));
//app.use(express.json({ limit: "200mb" }));

app.use(function(req,res, next) {
  res.locals.loginDB = mysql.createConnection({
    host: "localhost",
    user: "removed before posting",
    database: "removed before posting",
    password: "removed before posting"
  });
  res.locals.rta = rta;
  next();
});


//ImportRoutes
const loginRouter = require("./routes/login");
const registerRouter = require("./routes/register");

//Setup ImportRoutes
app.use("/AuthTest/login", loginRouter);
app.use("/AuthTest/register", registerRouter);


app.listen(port, () => {console.log("its alive!")});

我包含了我尝试过的注释掉的代码。现在这里是有问题的路线,直到它失败的部分,所以忽略 return 之后缺少的括号,其余部分无关紧要,因为它的流程被 return 语句切断。

const express = require("express");

//Setup express server routers
const router = express.Router();

//On get request
router.get('/', async (req, res) => {
  var test = req.body;
  res.status(200).send({
    success: false,
    message: "Test.",
    body: test,
    headers: req.headers
  });
  return;

Image of post result after making the route a post route

天哪,谢谢你@Phil,他说的 404 代码意味着 post 仍在尝试执行获取请求,这让我突然想起很久以前我在我网站 publichtml 文件夹中的 apps 文件夹。意思不是调用 express,而是将我的请求解释为 get,我相信是因为在删除文件夹后,我能够使用端点 /login 而不是 /logins,它起作用了,是解决这个问题的关键!