Ошибка: не удается прочитать свойство 'name' из undefined_NodeJS - PullRequest
0 голосов
/ 17 апреля 2020

У меня проблема с оператором post Nodejs, и до сих пор я не мог найти решение, ошибка, которую я получаю:

TypeError: Cannot read property 'name' of undefined
    at C:\x\app.js:26:25

и строка app.js:26:25 это

  const name = req.body.name;

это моя модель:

const mongoose = require('mongoose');
const contactSchema = new mongoose.Schema({
    name: {type : String},
    email: {type : String},
    message:{type : String}
});
const contact = mongoose.model("Contact", contactSchema);
module.exports = contact;

и это мой app.post:

app.post("/send", function (req, res) {
  const name = req.body.name;
  const email = req.body.email;
  const message = req.body.message;

  const add = new contact({
      name: name,
      email: email,
      message: message
  }).save(function (err, data) {
      !err ? res.redirect("/success") : console.log("err");
  });
});

это мой html код имени :

<div class="wrap-input100 rs1-wrap-input100 validate-input" data-validate="Name is required">
                    <span class="label-input100">Your Name</span>
                    <input class="input100" type="text" id = "name" name="name" placeholder="Enter your name">
                    <span class="focus-input100"></span>
                </div>

Кто-нибудь может мне помочь в этом? С наилучшими пожеланиями,

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Я не знаю, используете ли вы Express, но если это так, убедитесь, что в главном файле приложения вы включили req.body vars:

const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: true }));
0 голосов
/ 17 апреля 2020

В вашем сообщении об ошибке говорится, что req.body не установлено, когда вы go для req.body.name. Вам нужна особая промежуточная программа, чтобы заполнить req.body из форм POST.

Примерно так:

/*  npm install --save body-parser, cookie-parser  */
/* allow handling json and URL-encoded POST document bodies */
const bodyParser = require( 'body-parser' )
app.use( bodyParser.json() )
app.use( bodyParser.urlencoded( { extended: true } ) )

И, находясь поблизости, убедитесь, что вы обрабатываете печенье.

const cookieParser = require( 'cookie-parser' )
app.use( cookieParser() )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...