started working on routing

This commit is contained in:
ngn 2023-06-11 00:22:06 +03:00
parent 1327813462
commit b2989becd3
8 changed files with 70 additions and 33 deletions

4
.gitignore vendored
View File

@ -88,7 +88,3 @@ sw.*
# Vim swap files
*.swp
# db file
db.json
pass

View File

@ -1,22 +1,36 @@
const express = require("express");
const express = require("express")
const {gimmeToken} = require("./util.js")
const { MongoClient } = require("mongodb");
const { MongoClient } = require("mongodb")
require("dotenv").config()
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
const client = new MongoClient(process.env.DATABASE);
const PASS = process.env.PASS
let TOKEN = gimmeToken();
// routes
/*
* error: 0 -> no error
* error: 1 -> parameter error
* error: 2 -> auth error
* error: 3 -> not found error
*/
const resources = require("./routes/resources.js")
const projects = require("./routes/projects.js")
const blog = require("./routes/blog.js")
const auth = require("./routes/auth.js")
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: false }));
app.use("/resources", resources)
app.use("/projects", projects)
app.use("/blog", blog)
app.use("/auth", auth)
const db = new MongoClient(process.env.DATABASE);
const PASS = process.env.PASS
let TOKEN = gimmeToken();
app.use((req, res, next) => {
req.db = db;
next();
})
// PATH: /api/login
// METHOD: GET
@ -26,7 +40,7 @@ app.get("/login", (req,res)=>{
if (pass === undefined)
return res.json({error: 1})
if (pass !== PASS)
return res.json({error: 2})
@ -41,7 +55,7 @@ app.get("/logout", (req,res)=>{
if (token === undefined)
return res.json({error: 1})
if (token !== TOKEN)
return res.json({error: 2})
@ -65,10 +79,10 @@ app.get("/add_project", async (req, res) => {
url === undefined
)
return res.json({error: 1})
if (token !== TOKEN)
return res.json({error: 2})
await client.connect()
const db = await client.db("ngn13")
const col = await db.collection("projects")
@ -93,10 +107,10 @@ app.get("/add_resource", async (req, res) => {
url === undefined
)
return res.json({error: 1})
if (token !== TOKEN)
return res.json({error: 2})
await client.connect()
const db = await client.db("ngn13")
const col = await db.collection("resources")
@ -129,6 +143,18 @@ app.get("/get_resources", async (req, res) => {
res.json({error: 0, resources:array})
});
// PATH: /api/get_resources
// METHOD: GET
// PARAMETERS: NONE
app.get("/get_resources", async (req, res) => {
await client.connect()
const db = await client.db("ngn13")
const col = await db.collection("resources")
const array = await col.find().toArray()
await client.close()
res.json({error: 0, resources:array})
});
// PATH: /api/add_post
// METHOD: POST
// PARAMETERS: token, title, author, content
@ -145,16 +171,16 @@ app.post("/add_post", async (req, res) => {
content === undefined
)
return res.json({error: 1})
if (token !== TOKEN)
return res.json({error: 2})
await client.connect()
const db = await client.db("ngn13")
const col = await db.collection("posts")
await col.insertOne({
"title":title,
"author":author,
"title":title,
"author":author,
"date": new Date().toLocaleDateString(),
"content":content
})

12
api/routes/resources.js Normal file
View File

@ -0,0 +1,12 @@
const express = require("express")
const resources = express.Router()
resources.get("/get", async (req,res)=>{
await req.db.connect()
const col = await req.db.collection("ngn13")
const results = col.find().limit(10).toArray()
await req.db.close()
res.json({ error: 0, resources: results })
})
module.exports = resources

View File

@ -30,8 +30,8 @@ main {
padding: 40px;
cursor: pointer;
transition: .4s;
height: 13%;
width: 27%;
height: 100px;
width: 80%;
}
main:hover{
@ -56,7 +56,7 @@ h2{
@media only screen and (max-width: 1121px) {
main{
width: auto;
width: 80%;
}
}
</style>
</style>

View File

@ -15,6 +15,7 @@ div{
display: flex;
flex-direction: row;
padding: 15px;
align-items: center;
justify-content: center;
gap: 30px;
}
@ -24,4 +25,4 @@ div{
flex-direction: column;
}
}
</style>
</style>

BIN
nuxt.zip Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
{
"name": "my-website",
"version": "2.2.0",
"version": "2.3.0",
"private": true,
"scripts": {
"dev": "nuxt",

View File

@ -24,20 +24,22 @@
<Card>
<h1>👉 Contact me</h1>
<h2>You can contact me on the following platforms:</h2>
<a href="https://discord.com/users/568131907368386565"><i class='bx bxl-discord-alt'></i> Discord</a>
<br>
<a href="https://github.com/ngn13"><i class='bx bxl-github'></i> Github</a>
<br>
<a href="https://mastodon.social/@ngn"><i class='bx bxl-mastodon'></i> Mastodon</a>
<br>
<a href="mailto:ngn13proton@proton.me"><i class='bx bxs-envelope'></i> Mail</a>
<br>
<h2>or private message me on </h2>
<h2>or private message me on matrix:</h2>
<a><i>[matrix]</i> @ngn:matrix.ngn13.fun</a>
</Card>
</div>
<Logout v-if="logged"/>
<div class="version">
<p>v2.2</p>
<p>v2.3</p>
</div>
</div>
</template>