Сообщение не отправляет данные в таблицу mySql - PullRequest
0 голосов
/ 18 января 2019

Я новичок в программировании, и я пытался создать пост, который позволил бы мне отправлять данные из формы учета в таблицу (база данных mysql). Однако console.log (на консоли узла показывает мне ошибку), и я не могу понять, почему сообщение не работает.

Я получаю сообщение об ошибке: невозможно поставить в очередь рукопожатие после того, как оно уже было включено в рукопожатие, хотя я и погуглил, я не нашел способа заставить почту работать или избавиться от этой ошибки.

Благодарю за любую помощь.

const express = require('express');
const mysql = require('mysql');

// Create connection
const db = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : '',
    database : 'nodemysql'
});

// Connect
db.connect((err) => {
    if(err){
        throw err;
    }
    console.log('MySql Connected...');
});

const app = express();


app.get('/', function (req, res) {//nome da minha url  req(é o que vai na url/ res é o response é o ficheiro)
res.sendFile(path.join(__dirname+'/public/index.html'));
})

app.get('/log_in', function (req, res) {//nome da minha url
res.sendFile(path.join(__dirname+'/public/signin.html'));
})

app.get('/register', function (req, res) {//nome da minha url
res.sendFile(path.join(__dirname+'/public/register.html'));
})

// Create DB
app.get('/createdb', (req, res) => {
    let sql = 'CREATE DATABASE IF NOT EXISTS nodemysql';
    db.query(sql, (err, result) => {
        if(err) throw err;
        console.log(result);
        res.send('Database created...');
    });
});

// Create table
app.get('/createusertable', (req, res) => {
    let sql = 'CREATE TABLE user (id int AUTO_INCREMENT, name VARCHAR(50), last_name VARCHAR(50),email VARCHAR(100),password VARCHAR (100),phone VARCHAR (50),country VARCHAR(100),vat_number VARCHAR(9),address VARCHAR(150), PRIMARY KEY(id))';
    db.query(sql, (err, result) => {
        if(err) throw err;
        console.log(result);
        res.send('Post table created...');
    });
});

  db.connect(function(err){
  if(err) return console.log(err);
  console.log('conectou!');
  createTable(connection);
})

app.listen('3000', () => {
    console.log('Server started on port 3000');
});


app.use(express.static('public'))
const bodyParser = require("body-parser");

app.use(bodyParser.urlencoded({
    extended: true
}));

app.use(bodyParser.json());


    app.post('/register', function (req, res) {
    console.log(req.body.user.name);
    let post = {name:req.body.user.name, last_name:req.body.user.lastName,
    email:req.body.user.email, password:req.body.user.password, phone:req.body.user.phone,
    country:req.body.user.country, vat_number:req.body.user.nif, address:req.body.user.address};

    let sql = 'INSERT INTO user SET ?';
    let query = db.query(sql, post, (err, result) => {
        if(err) throw err;
   res.redirect(303,'/');

});
    });

1 Ответ

0 голосов
/ 18 января 2019

Похоже, вы инициировали еще один db.connect на шаге создания таблицы после того, как вы уже инициировали соединение в начале вашего скрипта.

Это инициализация двойного соединения, без какого-либо соединения. End (); закрыть изначально открытое соединение.

Я думаю, вам больше повезет, если вы удалите db.connect из шага "создать таблицу".

Пожалуйста, просмотрите эту документацию , чтобы уточнить мою точку зрения.

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