TypeError: не удается прочесть имя свойства undefined. Я не могу найти причину появления этой ошибки. Я использую mysql, nodejs и e js в качестве механизма просмотра - PullRequest
1 голос
/ 20 июня 2020

Я пытаюсь добавить новых пользователей в базу данных MySql в nodejs и E JS в качестве механизма просмотра. Я получаю ошибку TypeError: Cannot read property 'name' of undefined error. Может ли кто-нибудь помочь, поскольку я не могу найти причину, по которой я получаю эту ошибку.

My Routing

const express = require("express");
var router = express.Router();
const mysql = require("mysql");
const mysqlConnection = require("../connection");

router.get("/", function (req, res) {
  let mysql = "SELECT * FROM user_index.clients";
  let query = mysqlConnection.query(mysql, function (err, rows) {
    if (err) {
      throw err;
    } else {
      res.render("users", {
        title: "Mysql with EJS",
        users: rows,
      });
    }
  });
});

router.get("/add", function (req, res) {
  // res.send("My add page.");
  res.render("add", {
    title: "Mysql with EJS",
  });
});

router.post("/add", (req, res) => {
  let data = {
    name: req.body.name,
    email: req.body.email,
    phone_number: req.body.phone_number,
  };
  let mysql = "INSERT INTO clients SET ?";
  let query = mysqlConnection.query(mysql, data, function (err, result) {
    if (err) {
      throw err;
    } else {
      res.redirect("/");
    }
  });
});

module.exports = router;

1 Ответ

1 голос
/ 20 июня 2020

Поскольку вы отправляете html-form, вам нужен соответствующий парсер , чтобы иметь возможность получить доступ к отправленным данным под req.body. Добавление следующего промежуточного программного обеспечения перед обработчиками должно решить проблему:

const bodyParser = require('body-parser');
...
app.use(bodyParser.urlencoded({ extended: false })) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...