Added getter, deleter and poster
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
/node_modules
|
||||||
|
.env
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const app = express();
|
||||||
|
const dotenv = require('dotenv');
|
||||||
|
require('dotenv').config();
|
||||||
|
app.use(express.json());
|
||||||
|
|
||||||
|
const getDataRoute = require('./features/GET_data');
|
||||||
|
const postDataRoute = require('./features/POST_data');
|
||||||
|
const deleteDataRoute = require('./features/DELETE_data');
|
||||||
|
|
||||||
|
app.use('/get_data', getDataRoute);
|
||||||
|
app.use('/post_data', postDataRoute);
|
||||||
|
app.use('/delete_data', deleteDataRoute);
|
||||||
|
|
||||||
|
|
||||||
|
app.listen(process.env.PORT, () => {
|
||||||
|
console.log(`Server draait op port ${process.env.PORT}`)
|
||||||
|
})
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// db.js
|
||||||
|
require('dotenv').config();
|
||||||
|
const { Pool } = require('pg');
|
||||||
|
|
||||||
|
// Create a connection pool
|
||||||
|
const pool = new Pool({
|
||||||
|
user: process.env.DB_USER,
|
||||||
|
host: process.env.DB_HOST,
|
||||||
|
database: process.env.DB_DATABASE,
|
||||||
|
password: process.env.DB_PWD,
|
||||||
|
port: process.env.DB_PORT,
|
||||||
|
connectionTimeoutMillis: 5000,
|
||||||
|
});
|
||||||
|
|
||||||
|
pool.on('error', (err) => {
|
||||||
|
console.error('[db] pool error', {
|
||||||
|
message: err.message,
|
||||||
|
code: err.code,
|
||||||
|
stack: err.stack,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = pool;
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const pool = require('../db');
|
||||||
|
|
||||||
|
|
||||||
|
async function delete_data(req, res) {
|
||||||
|
try {
|
||||||
|
const name = req.query.name;
|
||||||
|
const result = await pool.query('DELETE FROM data WHERE name = $1', [name]);
|
||||||
|
res.status(200).json({
|
||||||
|
message: 'Data Deleted',
|
||||||
|
deleted: result.rows
|
||||||
|
})
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
console.error('database query failed', {
|
||||||
|
message: err.message,
|
||||||
|
code: err.code,
|
||||||
|
detail: err.detail,
|
||||||
|
hint: err.hint,
|
||||||
|
stack: err.stack,
|
||||||
|
});
|
||||||
|
res.status(500).send('Data has not been deleted, request failed');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
router.delete('/', delete_data);
|
||||||
|
module.exports = router;
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const pool = require('../db');
|
||||||
|
|
||||||
|
|
||||||
|
async function get_data(req, res) {
|
||||||
|
try {
|
||||||
|
const result = await pool.query('SELECT id, name, created_at FROM data');
|
||||||
|
console.log(result.rows);
|
||||||
|
res.json(result.rows);
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
console.error('[get_data] database query failed', {
|
||||||
|
message: err.message,
|
||||||
|
code: err.code,
|
||||||
|
detail: err.detail,
|
||||||
|
hint: err.hint,
|
||||||
|
stack: err.stack,
|
||||||
|
});
|
||||||
|
res.status(500).send('No data available, request failed');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
router.get('/', get_data);
|
||||||
|
module.exports = router;
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const pool = require('../db');
|
||||||
|
|
||||||
|
|
||||||
|
async function post_data(req, res) {
|
||||||
|
try {
|
||||||
|
const { name } = req.body;
|
||||||
|
const { rows } = await pool.query('INSERT INTO data (name) VALUES ($1)', [name]);
|
||||||
|
console.log(rows[0]);
|
||||||
|
res.json(rows[0]);
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
console.error('database query failed', {
|
||||||
|
message: err.message,
|
||||||
|
code: err.code,
|
||||||
|
detail: err.detail,
|
||||||
|
hint: err.hint,
|
||||||
|
stack: err.stack,
|
||||||
|
});
|
||||||
|
res.status(500).send('Data was not pushed, request failed');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
router.post('/', post_data);
|
||||||
|
module.exports = router;
|
||||||
Generated
+1375
File diff suppressed because it is too large
Load Diff
+11
-1
@@ -4,10 +4,20 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"dev": "nodemon app.js",
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"type": "commonjs"
|
"type": "commonjs",
|
||||||
|
"dependencies": {
|
||||||
|
"dotenv": "^17.4.2",
|
||||||
|
"express": "^5.2.1",
|
||||||
|
"pg": "^8.22.0",
|
||||||
|
"router": "^2.2.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"nodemon": "^3.1.14"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user