From 27c56929d305216746d3b3042fc5b45405750494 Mon Sep 17 00:00:00 2001 From: Gael Leblan Date: Wed, 2 Sep 2020 17:11:57 +0200 Subject: [PATCH] Stuff --- app.js | 80 +++++++++++++++++++++++++++------------------------- package.json | 3 +- 2 files changed, 44 insertions(+), 39 deletions(-) diff --git a/app.js b/app.js index 01394bd..dca79e2 100644 --- a/app.js +++ b/app.js @@ -1,88 +1,92 @@ -const http = require('http'); -const fileUpload = require('express-fileupload'); +const http = require("http"); +const fileUpload = require("express-fileupload"); -const hostname = '127.0.0.1'; +const hostname = "127.0.0.1"; const port = 3000; -const nodeSlicer = require('./slicers/slic3r/slic3r'); -const prusaSlicer = require('./slicers/prusaslicer/prusaslicer'); -const converter = require('./utils/converter'); -const database = require('./utils/database'); +const nodeSlicer = require("./slicers/slic3r/slic3r"); +const prusaSlicer = require("./slicers/prusaslicer/prusaslicer"); +const converter = require("./utils/converter"); +const database = require("./utils/database"); -const express = require('express') -const app = express() -const fs = require('fs-extra'); -const compression = require('compression') -const cors = require('cors') +const express = require("express"); +const app = express(); +const fs = require("fs-extra"); +const compression = require("compression"); +const cors = require("cors"); +const { v4: uuidv4 } = require("uuid"); // compress responses -app.use(compression()) +app.use(compression()); // default options app.use(fileUpload()); app.use(cors()); -app.get('/', function(req, res) { - res.send('Hello World!') -}) +app.get("/", function (req, res) { + res.send("Hello World!"); +}); -app.post('/upload/:slicerType', function(req, res) { +app.post("/upload/:slicerType", function (req, res) { console.log(req.files); for (var i = 0; i < Object.keys(req.files).length; i++) { var nameObject = Object.keys(req.files)[i]; var sampleFile = req.files[nameObject]; + sampleFile.id = uuidv4(); // Use the mv() method to place the file somewhere on your server - sampleFile.mv('/tmp/' + sampleFile.name, function(err) { - if (err) - return res.status(500).send(err); + sampleFile.mv("/tmp/" + sampleFile.id + ".stl", function (err) { + if (err) return res.status(500).send(err); - var name = sampleFile.name.substring(0, sampleFile.name.lastIndexOf('.')); + var name = sampleFile.name.substring(0, sampleFile.name.lastIndexOf(".")); var options = { - inputFile: '/tmp/' + sampleFile.name, + inputFile: "/tmp/" + sampleFile.id + ".stl", // For more options check out the configSchema.yaml file, // configFile: './default/slic3r.ini', - outputFile: '/tmp/' + name + '.gcode' + outputFile: "/tmp/" + sampleFile.id + ".gcode", }; - var callback = function(error) { - if (error) - console.error(error.message) + var callback = function (error) { + if (error) console.error(error.message); else { console.log(sampleFile.name); - let name = sampleFile.name.substring(0, sampleFile.name.lastIndexOf('.')); - res.download('/tmp/' + name + '.gcode', name + '.gcode'); + let name = sampleFile.name.substring(0, sampleFile.name.lastIndexOf(".")); + res.download("/tmp/" + sampleFile.id + ".gcode", name + ".gcode", () => { + fs.remove("/tmp/" + sampleFile.id + ".gcode"); + fs.remove("/tmp/" + sampleFile.id + ".stl"); + }); } }; var slicerToUse; - if (req.params.slicerType === 'slic3r') { + if (req.params.slicerType === "slic3r") { slicerToUse = nodeSlicer; - } else if (req.params.slicerType === 'prusaslicer') { + } else if (req.params.slicerType === "prusaslicer") { slicerToUse = prusaSlicer; } else { - return res.status(500).send('Wrong parameter'); + return res.status(500).send("Wrong parameter"); } slicerToUse.render(options, callback); }); } }); -app.get('/config', function(req, res) { - console.log(converter.fromIniToJson('./default/slic3r.ini', - (result) => { +app.get("/config", function (req, res) { + console.log( + converter.fromIniToJson("./default/slic3r.ini", (result) => { console.log(result); res.status(200).send(result); - })); + }) + ); }); -app.get('/public/profiles', function(req, res) { - fs.readFile('./public/availableProfiles.json', (err, data) => { +app.get("/public/profiles", function (req, res) { + fs.readFile("./public/availableProfiles.json", (err, data) => { res.status(200).send(data); }); }); app.listen(port, hostname, () => { - database.init(undefined, () => {}) + database.init(undefined, () => {}); console.log(`Server running at http://${hostname}:${port}/`); }); diff --git a/package.json b/package.json index 6d1ff8d..32dc91f 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "mongodb": "^3.6.0", "mongoose": "^5.10.0", "temp": "^0.8.1", - "tv4": "^1.1.5" + "tv4": "^1.1.5", + "uuid": "^8.3.0" } }