Skip to content

Instantly share code, notes, and snippets.

@alexander-daniel
Created December 18, 2015 15:53
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexander-daniel/b36f9be78abbbaa4847e to your computer and use it in GitHub Desktop.
Save alexander-daniel/b36f9be78abbbaa4847e to your computer and use it in GitHub Desktop.
# ~/plotly/debug-nodejs ♛ node index.js
{ streamstatus: 'All Streams Go!',
url: 'https://plot.ly/~alexander.daniel/2995',
message: '',
warning: '',
filename: 'REST-test',
error: '' }
'use strict';
var express = require('express');
var logger = require('morgan');
var bodyParser = require('body-parser');
var events = require('events');
var eventEmitter = new events.EventEmitter();
var app = express();
var server = require('http').Server(app);
var port = process.env.PORT || 3000;
server.listen(port);
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/step', function(req, res) {
var data = req.body.data;
eventEmitter.emit('step', data);
res.end('ok');
});
var plotly = require('plotly')('username', 'apikey');
var token = 'token';
var dataInit = [{x:[], y:[], stream: { token: token, maxpoints: 10 } }];
var layout = {fileopt : 'extend', filename : 'REST-test'};
plotly.plot(dataInit, layout, function (err, msg) {
if(err) return console.error('step data error', err.stack);
console.log(msg);
var stream = plotly.stream(token, function (err, res) {
console.log(err, res);
});
eventEmitter.on('step', function (data) {
console.log('sending to plotly: ' + data + ' steps');
var streamObject = JSON.stringify({ x: getDateString(), y: data });
stream.write(streamObject+'\n');
});
});
function getDateString() {
var d = new Date();
return d.toLocaleString();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment