Skip to content
This repository was archived by the owner on Mar 12, 2018. It is now read-only.

Commit f849849

Browse files
committed
refactored server.js to use tests in processing-js 1.4.8
updated server.js to use express 3.0 and handlebars templates
1 parent 0309fab commit f849849

File tree

4 files changed

+55
-11
lines changed

4 files changed

+55
-11
lines changed

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
"canvas": "*"
1818
},
1919
"devDependencies": {
20-
"express": "*"
20+
"express": "*",
21+
"morgan" : "*",
22+
"serve-index" : "*",
23+
"express3-handlebars" : "*"
2124
},
2225
"optionalDependencies": {},
2326
"engines": {

test/home.handlebars

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<h1>Example App: Home</h1>
2+
3+
4+
{{#each tests}}
5+
<a href="test/{{this.path}}" target="_blank"><img src="test/{{this.path}}"></a>
6+
<p>{{this.path}}</p>
7+
8+
{{/each}}

test/main.handlebars

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>Test Server</title>
6+
</head>
7+
<body>
8+
9+
{{{body}}}
10+
11+
</body>
12+
</html>

test/server.js

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,48 @@
44
*/
55

66
var fs = require('fs')
7+
, path = require("path")
78
, extname = require('path').extname
89
, jsdom = require('jsdom')
910
, express = require('express')
1011
, processing = require('../')
11-
, app = express();
12+
, exphbs = require('express3-handlebars')
13+
, app = express()
14+
, morgan = require('morgan')
15+
, serveIndex = require('serve-index');
1216

13-
app.use(express.logger('dev'));
14-
app.use('/processing-js', express.static(__dirname + '/../deps/processing-js'));
15-
app.use('/processing-js', express.directory(__dirname + '/../deps/processing-js'));
17+
// Set Handlebars to use the test directory
18+
app.engine('handlebars', exphbs({
19+
layoutsDir: __dirname,
20+
defaultLayout: 'main'
21+
}));
22+
app.set('views', __dirname);
23+
app.set('view engine', 'handlebars');
24+
25+
//Set up Logging
26+
app.use(morgan('combined'));
27+
28+
var pathToref = "../deps/processing-js/test/ref";
29+
30+
//pull in list of test to merge with template
31+
filedata = fs.readFileSync(path.join(__dirname, pathToref, 'tests.js'),'utf8');
32+
eval(filedata);
1633

1734
process.on('uncaughtException', function(){});
1835

1936
app.get('/', function(req, res) {
20-
res.sendfile(__dirname + '/index.html');
37+
res.render('home', {"tests" : tests});
2138
});
2239

2340
app.get('/test/:path(*)', function(req, res) {
24-
var path = req.params.path
25-
, file = '/../deps/processing-js/examples/' + path;
26-
27-
fs.readFile(__dirname + file, function(err, data) {
41+
var pdePath = req.params.path
42+
, file = path.join(__dirname, pathToref, pdePath);
43+
// console.log(file);
44+
fs.readFile(file, function(err, data) {
45+
if(err){
46+
console.log(err);
47+
res.send(err);
48+
}
2849
try {
2950
if ('.html' === extname(path)) {
3051
var document = jsdom.jsdom(data + '')
@@ -38,7 +59,7 @@ app.get('/test/:path(*)', function(req, res) {
3859
p5.canvas.createPNGStream().pipe(res);
3960
}, 500);
4061
} else {
41-
var p5 = processing.createInstance(__dirname + file);
62+
var p5 = processing.createInstance(file);
4263

4364
setTimeout(function() {
4465
p5.noLoop();

0 commit comments

Comments
 (0)