为什么 Postman 的这个 POST 请求失败了?

Why is this POST request failing from Postman?

我的应用程序后端使用 Cleardb 插件部署在 Heroku 上。

下面是后端代码:据我所知,它正在满足 POST 请求。

const express = require('express');
const cors = require('cors');
//const mysql = require("mysql");
//this was the old way and did not support secure password 
mysql = require('mysql2');


const app = express();

const port = process.env.PORT || 8000

/*
local connection 

const db =  mysql.createConnection({
    connectionaLimit: 50,
    user:'root',
    host: 'localhost',
    password:'',
    database:'sys',
    port: 3306
});

*/


const db =  mysql.createConnection({
    connectionaLimit: 120,
    user: process.env.DB_USER,
    host: process.env.DB_HOST,
    password: process.env.DB_PASSWORD,
    database: process.env.DATABASE,
    port: 3306
});


app.use(cors());


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

//SQL connection test
db.connect((err) => {
    if (err) console.error(err);
    console.log('MySQL Connection Established.');
  });
  
/* not used get request
app.get('/', (req,res) => {
    res.header("Access-Control-Allow-Origin", "*");
    res.send('Hello back');
}

);
*/


app.post('/' , (req,res) => {
    const {email, name, question} = req.body;
    res.header("Access-Control-Allow-Origin", "*");
    console.log(`Your Email is ${email} and your name is ${name} and your ${question}`);



//MYSQL updating table

db.query("INSERT INTO customer_questions (name, email, question) VALUES (?,?,?)",
    [name, email, question], (err,result)=> {
        if (err) {
            console.log(err)
        }else {
            res.send('data sent')
        }
        db.end();
    }
    );


});
 


app.listen(port);
console.log(`server is listing on ${port}`);

这是错误日志。据我所知,服务器运行然后停止,post 请求达到状态 500。我可以说出为什么会这样。

Post 请求使用 POSTMAN 显示 body.

任何关于此的帮助都会有所帮助。 MYSQL 连接在本地和通过 Heroku 都有效。

使用 connection pool 并且不要关闭连接:

db.end();

您可以 运行 查询池对象,它会为您处理 opening/closing 个连接。