aboutsummaryrefslogtreecommitdiffstats
path: root/backend/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'backend/main.js')
-rw-r--r--backend/main.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/backend/main.js b/backend/main.js
new file mode 100644
index 0000000..ae330b1
--- /dev/null
+++ b/backend/main.js
@@ -0,0 +1,46 @@
+const express = require("express");
+const formidable = require('formidable');
+const fs = require("fs").promises
+
+const app = express();
+app.use(express.static('static'))
+app.use(express.json());
+const PORT = process.env.PORT || 8000;
+const uploadDir = __dirname + "/static/upload"
+
+app.get('/', () => {
+
+})
+app.post('/upload', (req, res, next) => {
+ const form = formidable({ multiples: true, uploadDir, keepExtensions: true });
+
+ form.parse(req, (err, fields, files) => {
+ if (err) {
+ next(err);
+ return;
+ }
+ res.send("ok");
+ console.log({ fields, files });
+ });
+});
+// getPathFromName
+const gpfn = name => uploadDir + "/" + name
+app.post('/delete-files', async (req, res) => {
+ for (const n of req.body.names) {
+ await fs.unlink(gpfn(n))
+ }
+ res.send("ok")
+})
+app.post('/rename-file', async (req, res) => {
+ let { nn, on } = req.body
+ if (!nn.includes('.')) nn += '.' + on.split('.').pop()
+ await fs.rename(gpfn(on), gpfn(nn))
+ res.send("ok")
+})
+app.get('/files', async (_, res) => {
+ res.json(await fs.readdir(__dirname + '/static/upload'))
+});
+app.listen(PORT, () => {
+ console.log("Server listening on port " + PORT);
+})
+