-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Gael Leblan
committed
Sep 2, 2020
1 parent
51b4c5f
commit 27c5692
Showing
2 changed files
with
44 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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}/`); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters