app.post connection and middleware in nodejs

Viewed 35

app.post is not working on postman and showing result in not in JSON format and also middleware is showing error in postman what m doing wrong in this?? is there any new middleware code introduced recently??

// importing
import express from "express";
import mongoose from "mongoose";
import Messages from "./dbMessages.js";

//app config
const app = express();
const port = process.env.PORT || 9000;

//middleware
app.use(express.json());

//DB config
const connection_url =
  "mongodb+srv://admin:0ZKon3XRmT0SWkal@cluster0.7pljv.mongodb.net/whatsappdb?retryWrites=true&w=majority";

mongoose.connect(connection_url, {
  // useCreateIndex: true,
  // useNewUrlParser: true,
  // useUnifiedTopology: true,
});

//????

//api routes
app.get("/", (req, res) => res.status(200).send("hello world"));


app.post("/messages/new", (req, res) => {
  const dbMessage = req.body;

  Messages.create(dbMessage, (err, data) => {
    if (err) {
      res.status(500).send(err);
    } else {
      res.status(201).send(data);
    }
  });
});

//listen
app.listen(port, () => console.log(`Listening on localhost:${port}`));

dbmessages.js is given below

import mongoose from "mongoose";

const whatsappSchema = mongoose.Schema({
  message: String,
  name: String,
  timestamp: String,
  received: Boolean,
});

export default mongoose.model("messageContent", whatsappSchema);
1 Answers

You are not creating the instance of a model.

app.post("/messages/new", (req, res) => {
  const dbMessage = req.body,
        messageModel = new Messages();

  message.Modelmessage = req.body.Modelmessage;
  message.Modelname = req.body.Modelname;
  messageModel.timestamp = req.body.timestamp;
  messageModel.received = req.body.received;
 
  messageModel.save().then(data => {
     res.status(201).send(data);
  }).catch((e) => {
     res.status(500).send(err);
  })

     

});
Related