【问题标题】:Express API returns NOTHING in Post Request [closed]Express API 在 Post Request 中不返回任何内容 [关闭]
【发布时间】:2020-04-04 01:19:24
【问题描述】:

我试图在 express 中创建一个 jwt auth api,一切正常,直到今天,当使用邮递员发出 post 请求时,只返回 {}

这里是 server.js 的代码

const express = require("express");
const mongoose = require("mongoose");
const dotenv = require("dotenv");
const app = express();
const auth = require("./rutas/auth");
dotenv.config();
const port = process.env.PORT || 5000;
mongoose.connect(process.env.URI, {
  useUnifiedTopology: true,
  useNewUrlParser: true
});
app.use(express.json());
app.use("/api/auth", auth);
// app.use("/api/crud", crud);

app.listen(port, () => {
  console.log(`Conectado en el puerto ${port}`);
});

这是 auth.js 的代码,其中 post 请求给了我{}

const express = require("express");
const { check, validationResult } = require("express-validator");
const router = express.Router();
const bcrypt = require("bcryptjs");
const jwt = require("jsonwebtoken");
const User = require("../modelos/User");
router.get("/", async (req, res) => {
  const usuarios = await User.find();
  res.send(usuarios);
});
router.post("/sign", async (req, res) => {
  const { nombre, email, contraseña } = req.body;
  res.json(req.body);
  console.log(req.body);
});
router.post("/login", [], async (req, res) => {
  const { email, contraseña } = req.body;
  const errors = validationResult(req);
  if (!errors.isEmpty()) {
    return res.status(422).json({ errors: errors.array() });
  }

  try {
    //Encontrar usuario en BD
    const usuario = await User.findOne({ email });
    const isValido = await bcrypt.compare(contraseña, usuario.contraseña);
    if (isValido) {
      const payload = {
        id: usuario._id
      };
      const token = jwt.sign(payload, "secretomagico", { expiresIn: "1h" });
      req.header("auth-token", token);
      res.send("En BD");
    }
  } catch (error) {}
});
module.exports = router;
这是我在邮递员中发送的 json 消息: { "名词":"杰克", “对比”:12345678, “电子邮件”:“biggpoppa@gmail.com” }

【问题讨论】:

  • 您没有说返回的是哪个帖子路线 {}。您有两个发布路线,/sign 和 /login
  • 这是邮寄路线
  • 你有两条发布路线,一条在“/sign”下,一条在“/login”下;当您使用邮递员时,您输入的是“localhost:port/login”还是“localhost:port/sign
  • 是的,我使用了路线标志,已经发现邮递员的内容类型存在问题,谢谢

标签: javascript rest api express postman


【解决方案1】:

没关系,对于任何有同样问题的人,在邮递员中你必须输入标题 Content-Type: application/json. 我有 Contetn-Type: application/x-www-form-urlencoded 加上之前说的那个

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 2021-07-07
    • 2016-07-24
    • 1970-01-01
    相关资源
    最近更新 更多