Вставить данные HTML-формы в базу данных HEROKU PostgreSQL с помощью Node.js

#html #node.js #postgresql #forms #heroku-postgres

#HTML #node.js #postgresql #формы #heroku-postgres

Вопрос:

Я пытался вставить данные из HTML-формы в свою базу данных HEROKU PostgreSQL онлайн, но это не удалось. когда я выполняю код онлайн, я получаю (внутренняя ошибка сервера) вот код, который у меня есть для этого. Я не уверен, что я, кажется, делаю здесь неправильно.

 const express = require('express');
var app = express();
var pg = require('pg');

//set port
var port = process.env.PORT || 8080
var connection = {connectionString: process.env.DATABASE_URL || "postgres://xxxxxxxxxxxxxx"};
var client = new pg.Client(connection);
client.connect();

app.use(express.static(__dirname ));

//routes
app.get('/', function (req, res) {
    res.render("index");
});


app.post('/submit', function (req, res) {
    // Grab data from http request
    const data = {firstname: req.body.firstname,
        lastname: req.body.lastname,
        mail: req.body.mail,
        country: req.body.country,
        zipcode: req.body.zipcode,
        cityName: req.body.cityName,
        google: req.body.google,
        twitter: req.body.twitter,
        linkdin: req.body.linkdin,
        facebook: req.body.facebook,
        comm: req.body.comm
    };
    connection.connect(function (err) {
        if (err) throw err;
        console.log("connected");
        var pg = "INSERT INTO userdata(firstname, lastname, mail, country, zipcode, cityname, google, twitter, linkdin, facebook, comm) VALUES ('" data.firstname "', '" data.lastname "', '" data.mail "', '" data.country "', '" data.zipcode "', " data.cityName ", '" data.google "', '" data.twitter "', '" data.linkdin "','" data.facebook "', '" data.comm "')";
        connection.query(pg, function (err, result) {
            if (err) throw err;
            console.log("table created");
        });
    });
    res.sendFile('index.html', { root: __dirname });
});

app.listen(port, function(){
    console.log("app running");
})