Beim Hinzufügen von Daten zu MongoDB mithilfe des Knotens JS wird folgende Fehlermeldung angezeigt: "TypeError: Eigenschaft 'Benutzername' von undefined kann nicht gelesen werden."

Omar Diaa

Ich versuche, einige Daten mithilfe einer POST-Anfrage, die von der Postman-Anwendung gesendet wurde, zur Mongo DB hinzuzufügen. Ich habe die Datenbank erfolgreich erstellt und eine Nachricht wurde gedruckt, die darauf hinweist. Unten ist mein Code:

Datei users.js:

const router = require("express").Router();
let User = require("../models/user.model"); //the model we created

router.route("/").get((req, res) => {
  //If the link(route) is routes/users/ and it is a get request this is what is going to happen

  //
  User.find() //find: gets all what is in the database
    .then((users) => res.json(users)) //this puts in users all the users values
    .catch((err) => res.status(400).json("Error: " + err));
});

router.route("/add").post((req, res) => {
  //this handles the post requests at routes/users/add
  res.setHeader("Content-Type", "application/json");
  const username = req.body.username; //Gets the username passed

  const newUser = new User({ username }); //creates a new User (User model imported from the other file)

  newUser
    .save() //save: saves the created user in the database
    .then(() => res.json("user added!")) //
    .catch((err) => res.status(400).json("Error: " + err));
});

module.exports = router;

user.model.js:

const { Schema } = require("mongoose");

const mongoose = require("mongoose");
const schema = mongoose.Schema;

const userSchema = new schema(
  {
    username: {
      type: String,
      required: true,
      unique: true,
      trim: true,
      minlength: 3,
    },
  },
  {
    timestamps: true,
  }
);
const User = mongoose.model("User", userSchema); //"User" is the name we are going to use
//userSchema is the name of the schema

module.exports = User;

server.js:

const cors = require("cors");

const mongoose = require("mongoose");

const uri =
  "mongodb+srv://user:[email protected]/user?retryWrites=true&w=majority";

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

const connection = mongoose.connection;
connection.once("open", () => {
  console.log("DB Established!");
});

require("dotenv").config();
const app = express();
const port = process.env.PORT || 5000;
// app.use(cors);

const exerciesesRouter = require("./routes/exercises");
const usersRouter = require("./routes/users");

app.use("/exercises", exerciesesRouter); //if any one goes to /exercise it will load everything inside exerciseRouter
app.use("/users", usersRouter);

app.listen(port, () => {
  console.log(`Server is running on port: ${port}`);
});

app.get("/", (req, res) => {
  res.send("hello");
  res.end("ehee");
});

Jetzt sende ich mit Postman eine POST-Anfrage an den Link: "http: // localhost: 5000 / users / add" und erhalte die Nachricht:

TypeError: Cannot read property 'username' of undefined
    at router.route.post (F:\code\MERN2\backend\routes\users.js:16:29)
    at Layer.handle [as handle_request] (F:\code\MERN2\backend\node_modules\express\lib\router\layer.js:95:5)
    at next (F:\code\MERN2\backend\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (F:\code\MERN2\backend\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (F:\code\MERN2\backend\node_modules\express\lib\router\layer.js:95:5)
    at F:\code\MERN2\backend\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (F:\code\MERN2\backend\node_modules\express\lib\router\index.js:335:12)
    at next (F:\code\MERN2\backend\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (F:\code\MERN2\backend\node_modules\express\lib\router\index.js:174:3)
    at router (F:\code\MERN2\backend\node_modules\express\lib\router\index.js:47:12)
    at Layer.handle [as handle_request] (F:\code\MERN2\backend\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (F:\code\MERN2\backend\node_modules\express\lib\router\index.js:317:13)
    at F:\code\MERN2\backend\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (F:\code\MERN2\backend\node_modules\express\lib\router\index.js:335:12)
    at next (F:\code\MERN2\backend\node_modules\express\lib\router\index.js:275:10)
    at expressInit (F:\code\MERN2\backend\node_modules\express\lib\middleware\init.js:40:5)

Ich suchte nach den Fragen und versuchte alle vorgeschlagenen Antworten (die zu wenige sind) und keine funktionierte für mich.

Kedar Sedai

Grundsätzlich haben in NodeJsund Express MiddlewareFunktionen Zugriff auf req, resObjekt und nextFunktion in der req-resZyklus- Middleware . Die Aufgabe der Middleware-Funktionen ist

  • Führen Sie einen beliebigen Code aus
  • Beenden Sie den req resZyklus und nehmen Sie auch Änderungen am req resZyklus vor

Sie benötigen body-parserMiddleware. Es analysiert die eingehenden Anforderungskörper in einer Middleware vor Ihren Handlern.

//Middlewares for bodyParser
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

Mehr zu bodyParser middleware bodyParser .

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

TOP Liste

  1. 1

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  2. 2

    Unity Build-Fehler: Der Name 'EditorUtility' ist im aktuellen Kontext nicht vorhanden

  3. 3

    TypeAhead.js zeigt keine Ausgangsschienen an?

  4. 4

    Deklarieren einer nicht initialisierten Variablen in der Klassendefinition in Python

  5. 5

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  6. 6

    spring-data-jpa: ORA-01795: Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000

  7. 7

    Warum funktioniert Phantomjs nicht mit dieser Site?

  8. 8

    Interpolieren Sie mit Python die 2D-Matrix entlang der Spalten

  9. 9

    numpy: Berechnen Sie die Ableitung der Softmax-Funktion

  10. 10

    Wie vermeide ich, dass die gesamte App neu geladen wird, wenn Nav.Link von React-Bootstrap verwendet wird?

  11. 11

    MongoDB eingebettetes Dokument unterscheiden und filtern

  12. 12

    Aktualisieren des Werts im Json-Objekt in Python

  13. 13

    Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

  14. 14

    Python gibt einen Fehler aus, dass eine Datei nicht vorhanden ist, wenn dies eindeutig der Fall ist

  15. 15

    Wie verwende ich Format-Table ohne Abschneiden von Werten?

  16. 16

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  17. 17

    Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript

  18. 18

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  19. 19

    Holen Sie sich verwandte Pillen Inhalt mit angeklickten img in Angular

  20. 20

    Eclipse Oxygen - Projekte verschwinden

  21. 21

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

heißlabel

Archiv