发布不发送数据做MySQL表

时间:2019-01-18 14:48:58

标签: javascript mysql node.js express

我是编程新手,我一直在尝试发布一个帖子,允许我将数据从ancount表单发送到表(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 :(得分:0)

在脚本开头已经启动连接之后,您似乎在创建表步骤中启动了另一个db.connect。

这是一个双重连接启动,没有任何connection.end();。关闭最初打开的连接。

我认为,从“创建表”步骤中删除db.connect时,您会遇到更多的运气。

请查看this documentation,以进一步阐明我的观点。