el.xwx.moe/api/server.js

91 lines
1.8 KiB
JavaScript
Raw Normal View History

2022-04-19 07:22:53 -05:00
const express = require('express');
const app = express();
const { MongoClient } = require('mongodb');
2022-05-10 11:40:08 -05:00
const cors = require('cors');
const config = require('../src/config.json');
const getData = require('./modules/getData.js')
2022-04-22 07:13:22 -05:00
const port = config.api.port;
2022-04-19 07:22:53 -05:00
const URI = config.api.mongodb_URI;
const database = config.api.database_name;
const collection = config.api.collection_name;
2022-04-19 07:22:53 -05:00
const client = new MongoClient(URI);
2022-04-19 07:22:53 -05:00
2022-05-10 11:40:08 -05:00
app.use(cors());
2022-04-19 07:22:53 -05:00
app.use(express.json());
app.get('/api', async (req, res) => {
2022-04-19 07:22:53 -05:00
const data = await getDoc();
res.send(data);
});
app.post('/api', async (req, res) => {
2022-04-26 05:50:07 -05:00
const pageToVisit = req.body.link;
try {
const dataResult = await getData(pageToVisit, req.body._id);
req.body.title = dataResult;
insertDoc(req.body);
} catch (err) {
console.log(err);
insertDoc(req.body);
} finally {
res.send('DONE!');
}
2022-04-19 07:22:53 -05:00
});
app.delete('/api', async (req, res) => {
2022-04-26 01:20:42 -05:00
const id = req.body.id.toString();
await deleteDoc(id);
res.send(`Bookmark with _id:${id} deleted.`);
2022-04-26 01:20:42 -05:00
});
2022-04-19 07:22:53 -05:00
async function insertDoc(doc) {
try {
2022-05-11 04:23:24 -05:00
const db = client.db(database);
const list = db.collection(collection);
2022-04-19 07:22:53 -05:00
const result = await list.insertOne(doc);
}
catch(err) {
console.log(err);
}
}
async function getDoc() {
try {
2022-05-11 04:23:24 -05:00
const db = client.db(database);
const list = db.collection(collection);
2022-04-19 07:22:53 -05:00
const result = await list.find({}).toArray();
return result;
}
catch(err) {
console.log(err);
}
}
2022-04-26 01:20:42 -05:00
async function deleteDoc(doc) {
try {
2022-05-11 04:23:24 -05:00
const db = client.db(database);
const list = db.collection(collection);
const result = await list.deleteOne({"_id": doc});
2022-05-11 04:23:24 -05:00
return result;
2022-04-26 01:20:42 -05:00
}
catch(err) {
console.log(err);
}
}
2022-04-19 07:22:53 -05:00
app.listen(port, () => {
console.log(`Success! running on port ${port}.`);
2022-04-26 15:30:36 -05:00
client.connect();
2022-04-19 07:22:53 -05:00
});