I've just written a simple http api server using nodejs and express. It wraps the mysql database, and return its data.
However, for each every query I do, my server crashs.
I create the pool connection in a file called "db_manager":
const mysql = require("mysql2/promise");
require("dotenv").config();
try{
var pool = mysql.createPool({
host: process.env.DB_HOST,
user: process.env.DB_USER,
database: process.env.DB_NAME,
password: process.env.DB_PASSWORD,
});
} catch (err){
console.log(err)
}
module.exports = { pool };
Then i just import the pool in the various file I use.
const { pool } = require("./db_manager");
//code
var query = config.onlyOpened ? "SELECT * FROM `Deadlines` WHERE `private` = FALSE AND `closed` == FALSE" : "SELECT * FROM `Deadlines` WHERE `private` = FALSE";
const [rawResults, _] = await pool.execute(query);
And it throws this error
~/Projects/MySQLExpress/node_modules/mysql2/lib/pool.js:177
throw e;
^
TypeError: Bind parameters must not contain undefined. To pass SQL NULL specify JS null
at ~/Projects/MySQLExpress/node_modules/mysql2/lib/connection.js:628:17
at Array.forEach (<anonymous>)
at PoolConnection.execute (~/Projects/MySQLExpress/node_modules/mysql2/lib/connection.js:620:22)
at ~/Projects/MySQLExpress/node_modules/mysql2/lib/pool.js:172:14
at ~/Projects/MySQLExpress/node_modules/mysql2/lib/pool.js:64:16
at PoolConnection.<anonymous> (~/Projects/MySQLExpress/node_modules/mysql2/lib/connection.js:777:13)
at Object.onceWrapper (events.js:422:26)
at PoolConnection.emit (events.js:315:20)
at ClientHandshake.<anonymous> (~/Projects/MySQLExpress/node_modules/mysql2/lib/connection.js:121:14)
at ClientHandshake.emit (events.js:315:20)
[nodemon] app crashed - waiting for file changes before starting...