Skip to content

Instantly share code, notes, and snippets.

@imerr
Last active October 31, 2016 13:36
Show Gist options
  • Save imerr/9992010e71b7a962c849d4f63141629e to your computer and use it in GitHub Desktop.
Save imerr/9992010e71b7a962c849d4f63141629e to your computer and use it in GitHub Desktop.
var express = require('express');
var app = express();
var fabric = require('fabric').fabric;
var bodyParser = require('body-parser')
var urlencodedParser = bodyParser.urlencoded({extended: false})
app.get('/', function (req, res) {
res.send('<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.4.0/fabric.min.js"></script><form action="/canvas" method="post" target="i" onsubmit="document.getElementById(\'json\').value = JSON.stringify(canvas.toJSON());console.log(canvas.toJSON())"><input type="hidden" name="json" id="json"><input type="submit" value="render" /></form><canvas id="c" width="200" height="200" style="border:1px solid #aaa"></canvas><iframe name="i" src="/404" style="height: 250px; width:250px;"></iframe><script>var canvas = new fabric.Canvas("c", {isDrawingMode: true})</script>');
});
app.post('/canvas', urlencodedParser, function (req, res) {
var data = JSON.parse(req.body.json);
console.log(data);
var canvas = fabric.createCanvasForNode(200, 200);
canvas.loadFromJSON(data);
res.send('<img src="' + canvas.toDataURL({format: 'png'}) + '" style="width: 200px; height:200px;">');
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment