started implementing data functions for easy requests to data
This commit is contained in:
@@ -8,6 +8,8 @@
|
|||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"ejs": "^3.1.10",
|
"ejs": "^3.1.10",
|
||||||
"express": "^5.1.0",
|
"express": "^5.1.0",
|
||||||
"markdown-it": "^14.1.0"
|
"markdown-it": "^14.1.0",
|
||||||
|
"mysql": "^2.18.1",
|
||||||
|
"package.json": "^2.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
57
src/data.js
Normal file
57
src/data.js
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
import { createRequire } from "module";
|
||||||
|
const require = createRequire(import.meta.url);
|
||||||
|
|
||||||
|
const config = require("../config.json")
|
||||||
|
const fs = require("fs")
|
||||||
|
|
||||||
|
export function getdata(data) {
|
||||||
|
|
||||||
|
if (config["data_storage"] == "json") {
|
||||||
|
if (data == "posts" || data == "users") {
|
||||||
|
let result = require(`../data/${data}.json`)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
else if (data == "comments") {
|
||||||
|
let result = require("../data/comments.json")
|
||||||
|
return result.comments
|
||||||
|
}
|
||||||
|
else if (data == "hitcount") {
|
||||||
|
let result = fs.readFileSync("../data/hitcount.txt")
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("Error, invalid requested")
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config["data_storage"] == "mysql") {
|
||||||
|
const mysql = require('mysql');
|
||||||
|
let con = mysql.createConnection({
|
||||||
|
host: config.database.host,
|
||||||
|
user: config.database.user,
|
||||||
|
password: config.database.password,
|
||||||
|
database: config.database.database,
|
||||||
|
});
|
||||||
|
|
||||||
|
con.connect(function(err) {
|
||||||
|
if (err) throw err;
|
||||||
|
|
||||||
|
if (data == "posts" || data == 'users' || data == 'comments') {
|
||||||
|
con.query(`SELECT * FROM ${data}`, function (err, result, fields) {
|
||||||
|
if (err) throw err;
|
||||||
|
console.log(result)
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (data == 'hitcount') {
|
||||||
|
con.query(`SELECT paramValue FROM params WHERE paramName = '${data}'`, function (err, result, fields) {
|
||||||
|
if (err) throw err;
|
||||||
|
console.log(result)
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@@ -9,8 +9,10 @@ const crypto = require('crypto'); // For encrypting passwords, I use sha512
|
|||||||
const { fromUnixTime, format, getUnixTime } = require("date-fns") // A date utility library
|
const { fromUnixTime, format, getUnixTime } = require("date-fns") // A date utility library
|
||||||
const ejs = require("ejs")
|
const ejs = require("ejs")
|
||||||
const func = require("./functions.js")
|
const func = require("./functions.js")
|
||||||
|
const data = require("./data.js")
|
||||||
const init = require("./initialise.js")
|
const init = require("./initialise.js")
|
||||||
|
|
||||||
|
|
||||||
// There's only one possible argument, so we can just check if the user passed that one
|
// There's only one possible argument, so we can just check if the user passed that one
|
||||||
// TODO I plan on adding more such as --help and --post so I should make this more robust at some point
|
// TODO I plan on adding more such as --help and --post so I should make this more robust at some point
|
||||||
if (process.argv[2] == "--first-time") {
|
if (process.argv[2] == "--first-time") {
|
||||||
@@ -23,20 +25,22 @@ let posts // contains a list of posts,
|
|||||||
let comments // contains a list of comments
|
let comments // contains a list of comments
|
||||||
let config // contains a set of configuration for the site, see example-config.js for an example
|
let config // contains a set of configuration for the site, see example-config.js for an example
|
||||||
|
|
||||||
try {
|
config = require('../config.json');
|
||||||
|
if (config["data_storage"] == "json") {
|
||||||
|
try {
|
||||||
// We're going to try and import the modules,
|
// We're going to try and import the modules,
|
||||||
users = require('../data/users.json');
|
users = require('../data/users.json');
|
||||||
posts = require('../data/posts.json');
|
posts = require('../data/posts.json');
|
||||||
comments = require('../data/comments.json');
|
comments = require('../data/comments.json');
|
||||||
config = require('../config.json');
|
}
|
||||||
}
|
catch (error) {
|
||||||
catch (error) {
|
|
||||||
// if they don't all import then
|
// if they don't all import then
|
||||||
// inform the user to pass --first-time and exit with an error code
|
// inform the user to pass --first-time and exit with an error code
|
||||||
console.log("A file is missing!")
|
console.log("A file is missing!")
|
||||||
console.log("Run with --first-time to initialise the program")
|
console.log("Run with --first-time to initialise the program")
|
||||||
console.log(error)
|
console.log(error)
|
||||||
process.exit(1)
|
process.exit(1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Import the locale
|
// Import the locale
|
||||||
@@ -178,10 +182,10 @@ app.get("/", (req,res) => {
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
locale,
|
locale,
|
||||||
posts,
|
posts: data.getdata("posts"),
|
||||||
users,
|
users: data.getdata("users"),
|
||||||
comments: comments.comments,
|
comments: data.getdata("comments"),
|
||||||
hitcount: fs.readFileSync("../data/hitcount.txt"),
|
hitcount: data.getdata("hitcount"),
|
||||||
fromUnixTime,
|
fromUnixTime,
|
||||||
format,
|
format,
|
||||||
getUnixTime,
|
getUnixTime,
|
||||||
|
Reference in New Issue
Block a user