Added getter, deleter and poster

This commit is contained in:
Sven laptop
2026-07-20 22:46:48 +02:00
parent ac296ecda4
commit 9749eb6dc4
8 changed files with 1511 additions and 1 deletions
+2
View File
@@ -0,0 +1,2 @@
/node_modules
.env
+18
View File
@@ -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}`)
})
+23
View File
@@ -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;
+29
View File
@@ -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;
+26
View File
@@ -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;
+27
View File
@@ -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;
+1375
View File
File diff suppressed because it is too large Load Diff
+11 -1
View File
@@ -4,10 +4,20 @@
"description": "",
"main": "app.js",
"scripts": {
"dev": "nodemon app.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"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"
}
}