Передача данных из ввода в MySQL с помощью экспресс-запроса и запроса POST - PullRequest
0 голосов
/ 22 ноября 2018

Это фрагмент моего кода HTML и Express:

<!DOCTYPE html>
 <html lang="en">
 <head>
    <meta charset="UTF-8">
    <title>TEST</title>
 </head>
 <body>
    <form action="http://localhost:3000/tools" method="POST">
        <p>
            Set name: <input type="text" name="set_name">
        </p>
        <p>
            Description: <input type="text" name="description">
        </p>
        <input type="submit" value="Submit">
    </form>

 </body>
</html>

и Express:

const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');

const {parse}=require('querystring'); 
const connection = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: '',
    database: 'toolscatalog'
});
const app = express();
const urlParser=bodyParser.urlencoded({extended:false});

function dbConnection(SQLquery, result) {
    connection.connect();
    connection.query(SQLquery, (error, results) => {
    if (error) throw error;
    result.send(results);
    console.log(results);
    });
    connection.end();
}

app.route('/tools')
    .get((req, res) => {
    dbConnection('SELECT * FROM tools', res);
    });

app.post('/tools',urlParser, (req, res) => {
    const set_name = req.body.set_name;
    const desc = req.body.description;
    console.log(set_name, desc);     //console: undefined undefined
    dbConnection(`INSERT INTO tools(set_name,description) VALUES (${set_name}, ${desc})`, res);
});

app.listen(3000, function () {
    console.log('listening on: 3000')
});

Столбцы MySQL:

  • id - автоинкрементне нуль,
  • set_name varchar,
  • description varchar.

Похоже, что после отправки формы данные из формы не могут быть прочитаны bodyParser на сервере,Console.log предоставляет неопределенные значения name и desc переменных.Как передать информацию из входов в БД?

Другая проблема связана с запросом GET.Первый запрос после запуска сервера работает нормально.Второй запрос на получение данных из БД возвращает ошибку и сбой сервера.

1 Ответ

0 голосов
/ 22 ноября 2018

Я наконец нашел ответ на свой вопрос.$ {set_name} и $ {description} из SQL-запроса должны быть переданы в виде строковых значений в кавычках, что означает «$ {set_name}» и «$ {description}».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...