preparing to refactor to use pool

This commit is contained in:
Mikayla Dobson
2022-07-05 11:31:35 -05:00
parent e2ab4c3b28
commit f54b4fc5d6
6 changed files with 98 additions and 31 deletions

View File

@@ -1,11 +1,11 @@
const { Pool } = require('pg');
require('dotenv').config({ path: './config.env' });
const pool = new Pool({
connectionString: process.env.CONNECTION,
});
const pool = new Pool({ connectionString: process.env.CONNECTION });
module.exports = {
// text = SQL query; params = array of values to inject
query: (text, params) => pool.query(text, params)
connect: async () => await pool.connect(),
query: (text, params) => pool.query(text, params),
end: async () => await pool.end()
}

View File

@@ -14,15 +14,15 @@ module.exports = (app) => {
app.use(require('../routes/API'));
app.use(session({
secret: process.env.EXPRESS_SECRET,
cookie: { maxAge: 8*60*60*1000, secure: false },
resave: false,
saveUninitialized: true,
store: new (require('connect-pg-simple')(session))({
conString: process.env.CONNECTION,
createTableIfMissing: true,
pruneSessionInterval: 60 * 30
})
}));
// app.use(session({
// secret: process.env.EXPRESS_SECRET,
// cookie: { maxAge: 8*60*60*1000, secure: false },
// resave: false,
// saveUninitialized: true,
// store: new (require('connect-pg-simple')(session))({
// conString: process.env.CONNECTION,
// createTableIfMissing: true,
// pruneSessionInterval: 60 * 30
// })
// }));
}

View File

@@ -2,6 +2,6 @@ const passportLoader = require('./passport');
const expressLoader = require('./express');
module.exports = async (app) => {
const passport = await passportLoader(app);
// const passport = await passportLoader(app);
const express = await expressLoader(app);
}

View File

@@ -6,13 +6,13 @@ module.exports = (app) => {
app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser((user, done) => {
done(null, user.id);
});
// passport.serializeUser((user, done) => {
// done(null, user.id);
// });
passport.deserializeUser((id, done) => {
done(null, { id });
});
// passport.deserializeUser((id, done) => {
// done(null, { id });
// });
/***
** TO DO: FINISH CONFIGURING LOCAL STRATEGY

View File

@@ -1,14 +1,10 @@
const express = require('express');
const apiRouter = express.Router();
const userRouter = require('./user');
const productsRouter = require('./products');
const registerRouter = require('./register');
const loginRouter = require('./login');
apiRouter.use('/users', userRouter);
apiRouter.use('/products', productsRouter);
apiRouter.use('/register', registerRouter);
apiRouter.use('/login', loginRouter);
apiRouter.use('/users', require('./user'));
apiRouter.use('/products', require('./products'));
apiRouter.use('/register', require('./register'));
apiRouter.use('/login', require('./login'));
apiRouter.use('/pool-experiment', require('./_experimental'));
module.exports = apiRouter;

71
routes/_experimental.js Normal file
View File

@@ -0,0 +1,71 @@
const experimentRouter = require('express').Router();
const { connect, query, end } = require('../db/Pool');
experimentRouter.route('/').get(async (req, res) => {
const client = await connect()
.then(console.log("Connection successful"));
if (client) {
try {
res.send("Pool appears to work?");
} catch(e) {
console.log(e);
} finally {
await end();
}
}
});
experimentRouter.route('/').put(async (req, res) => {
const { name, description, information } = req.body;
const input = `
INSERT INTO experimental (name, description, information)
VALUES ($1, $2, $3)
`
const client = await connect()
.then(console.log("Connection successful."));
if (client) {
try {
await client.query('BEGIN');
await client.query(input, [name, description, information]);
await client.query('COMMIT');
res.sendStatus(200);
} catch(e) {
await client.query('ROLLBACK');
throw new Error(e);
} finally {
client.release();
}
}
})
experimentRouter.route('/create-exp-db').put(async (req, res) => {
const input = `
CREATE TABLE IF NOT EXISTS experimental (
id SERIAL,
name VARCHAR,
description VARCHAR,
information JSON
);
`
const client = await connect()
.then(console.log("Connection successful."));
if (client) {
try {
await query(input, null, (err, result) => {
if (err) throw err;
res.send(result);
});
} catch(e) {
console.log(e);
} finally {
await end();
}
}
})
module.exports = experimentRouter;