• 1401/02/03

عدم دریافت اطلاعات body در postman :

سلام  

روز بخیر. یه مشکلی داشتم که نمیدونم چرا وقتی میخوام توو دیتابیس ذخیره کنم با متد post اطلاعات body رو اصلا نمی خونه و یه رکورد خالی با id فقط ذخیره میشه. برنامه رو توو تلگرام براتون فرستادم. ممنون میشم منو راهنمایی کنید.

const _ = require("lodash");
const SupervisionModel = require("../models/supervision_model");

module.exports = new (class SupervisionController {
  async add(req, res) {

    const newRecord = new SupervisionModel(
      _.pick(req.body, ["year", "field", "group", "price"])
    );
    console.log(newRecord);

    const record = await newRecord.save();
    res.send(_.pick(record, ["year", "field", "group", "price"]));
    console.log(record);
  }

  async getTariffList(req, res) {
    const tariffList = await SupervisionModel.find();
    res.send(tariffList);
  }
})();
const mongoose = require("mongoose");

const schema = new mongoose.Schema({
  year: { type: String },
  field: { type: String },
  group: { type: String },
  price: { type: String },
});

const SupervisionModel = mongoose.model("supervision", schema);

module.exports = SupervisionModel;
const express = require("express");
const router = express.Router();
const SupervisionController = require("../controllers/supervision_controller");

router.post("/api/supervision/add", SupervisionController.add);

module.exports = router;

اینم فایل index.js:

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const SupervisionRoute = require("./routes/supervision_route");

class Application {
  constructor() {
    this.setupExpressServer();
    this.setupMongoose();
    this.setupRoutesAndMiddleware();
  }

  setupRoutesAndMiddleware() {
    app.use(SupervisionRoute);
  }

  setupMongoose() {
    mongoose
      .connect("mongodb://localhost:27017/tariff", {
        useUnifiedTopology: true,
      })
      .then(() => {
        console.log("Connected to database.");
      })
      .catch((err) => {
        console.log("Not connected to database!", err);
      });
  }

  setupExpressServer() {
    const port = process.env.port || 3000;
    app.listen(port, (error) => {
      if (error) {
        console.log(error);
      } else {
        console.log(`app listen to port ${port}`);
      }
    });
  }
}

module.exports = Application;

post request:

database mongoDB:

ممنون که پاسخ میدین.

  • 1401/02/05
  • ساعت 16:52

سلام نیاز ب استفاده از میدل ور express.json دارید

 app.use(express.json)

 


logo-enamadlogo-samandehi