Express POST-запрос кажется неопределенным в MySQL базе данных - PullRequest
0 голосов
/ 28 марта 2020

Когда я отправляю данные формы из формы HTML, все значения, добавленные в базу данных MySQL, отображаются как неопределенные. Я console.logged req.body, и это показано правильно. Форма HTML в клиенте является нормальной формой (важно отметить, что я не отправляю multipart / form-data, в HTML отсутствует атрибут "enctype"). Я искал по всему rnet, чтобы понять, что я делаю не так. Я хотел бы знать, в чем проблема. Вот мой внутренний код:

const express = require('express');
const bodyParser = require('body-parser'); // Required for POST requests to work
const mysql = require('mysql');
const path = require('path');
const cors = require('cors');
const app = express();
const port = 1000; 

app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.json());
app.use(cors());


const DB = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: '1',
      database: 'onlineshop',
});

DB.connect(err => {
    if (err) throw err
    console.log("Connected to MySQL database")
});

app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

app.post('/register', (req, res) => {
  let newCustomer = req.body;
  let q = `INSERT INTO customers (firstname, lastname, email, password, city, street, role)
  VALUES ("${newCustomer.firstname}",
          "${newCustomer.lastname}",
          "${newCustomer.email}",
          "${newCustomer.password}",
          "${newCustomer.city}",
          "${newCustomer.address}",
           0`
  const result = DB.query(q, (err,result)=>{ 
      if (err) throw err
      res.json(result)
  })
});

app.listen(port, console.log('App listening at port 1000'));

Спасибо!

1 Ответ

0 голосов
/ 28 марта 2020

Ваш POST из HTML формы?

Если это так, вам нужен анализатор тела с urlencoded, а у вас есть только json. Полезная нагрузка для POST из HTML форм в формате urlencoded. (Вы можете увидеть это на вкладке Network devtools, если вам интересно.)

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