Невозможно опубликовать данные json с помощью почтальона на сервере nodejs - PullRequest
1 голос
/ 05 апреля 2020

Что я здесь не так делаю? Я где-то видел, что body-parser теперь встроен в express в express, я пробовал и тот же результат. app. js

const express = require("express");
const app = express();
const mongoose = require("mongoose");
require("dotenv/config");
const posts = require("./routes/posts");
const bodyParser = require("body-parser");

//middleware to use "/posts" whenever we go to posts
app.use("/posts", posts);
app.use(bodyParser.json()); //parsing json

//routes
app.get("/", (req, res) => {
  //handle root
  res.send("We are home");
});

//how do we start listening/connect to the server
mongoose.connect(
  process.env.DB_CONNECTION,
  { useNewUrlParser: true, useUnifiedTopology: true },
  () => console.log("connected to DB!")
);

app.listen(3000);

Post. js

const mongoose = require("mongoose");

const PostSchema = mongoose.Schema({
  title: {
    type: String,
    required: true,
  },
  description: {
    type: String,
    required: true,
  },
  date: {
    type: Date,
    default: Date.now(),
  },
});

module.exports = mongoose.model("Posts", PostSchema);

posts. js

const express = require("express");
let router = express.Router();
const Post = require("../models/Post");

//middleware
/*router.use(function(req, res, next){
    console.log(req.url, "@", Date.now());
    next();
})*/

router
  .route("/")
  .get((req, res, next) => {
    res.send("hi get /posts");
  })
  .post((req, res, next) => {
    console.log(req.body);
  });

module.exports = router;

Терминал всегда показывает, что он не определен.

вот скриншот почтальона: enter image description here

1 Ответ

2 голосов
/ 05 апреля 2020

Да bodyParser включен в текущие версии expressjs, и вы можете применить его следующим образом:

app.use(express.json());

Также это промежуточное программное обеспечение должно быть применено перед использованием маршрутов. Так что порядок должен быть таким:

app.use(express.json()); //parsing json
app.use("/posts", posts);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...