首页 > 解决方案 > 使用 Node.js 将 HTML 表单数据插入 HEROKU PostgreSQL 数据库

问题描述

我试图将 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");
})

标签: htmlnode.jspostgresqlformsheroku-postgres

解决方案


推荐阅读