-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
100 lines (78 loc) · 2.12 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
'use strict'
// Load utilities
var config = require('./lib/utils/config');
var formatter = require('./lib/utils/formatter');
// Init the db
var mongoose = require('mongoose');
var DataTable = require('mongoose-datatable');
DataTable.configure({ verbose: false, debug : false });
mongoose.plugin(DataTable.init);
mongoose.connect(config.db_uri, config.db_options, function (err, res)
{
if (err) {
console.error('ERROR connecting to:', config.db_uri, err);
} else {
console.log('Connected to:', config.db_uri);
}
});
var Report = require('./lib/model')(mongoose);
// Init http server
var http = require('http');
var express = require('express');
var app = express();
var jsonrpc = require('node-express-json-rpc2');
// App setup
app.set('port', process.env.PORT || 3005);
app.set('trust proxy', true);
if( process.env.NODE_ENV !== 'production')
{
var path = require('path');
var bodyParser = require('body-parser');
var errorHandler = require('errorhandler');
var morgan = require('morgan');
app.use(morgan('dev'));
app.use(express.static(path.join(__dirname, 'dist')));
app.use(errorHandler());
}
app.use(jsonrpc());
app.get('/mongo/get/datatable', function (req, res)
{
Report.dataTable(req.query, function (err, data) {
res.send(data);
});
});
app.post('/', function (req, res)
{
res.rpc('eth_badBlock', function (params, respond)
{
var result = formatter(params, req.ip);
var r = new Report(result);
var err = r.validateSync();
if( err )
{
console.error(err);
respond(jsonrpc.INVALID_PARAMS);
}
else
{
r.save();
console.info(result);
respond({error: null, result: 'ok'});
}
});
});
var server = http.createServer(app);
server.listen(app.get('port'), function(){
console.log('Server started on port', app.get('port'));
});
var gracefulShutdown = function() {
console.log('');
console.error("xxx", "sys", "Received kill signal, shutting down gracefully.");
mongoose.disconnect();
process.exit(0);
}
// listen for TERM signal .e.g. kill
process.on('SIGTERM', gracefulShutdown);
// listen for INT signal e.g. Ctrl-C
process.on('SIGINT', gracefulShutdown);
module.exports = server;