-
Notifications
You must be signed in to change notification settings - Fork 66
/
Copy pathapp.js
52 lines (42 loc) · 1.21 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
/**
* App Dependencies.
*/
require('strong-agent').profile();
var control = require('strong-cluster-control');
var options = control.loadOptions();
// If configured as a cluster master, just start controller
if (options.clustered && options.isMaster) {
return control.start(options);
}
var loopback = require('loopback')
, app = module.exports = loopback()
, fs = require('fs')
, path = require('path')
, request = require('request')
, TaskEmitter = require('strong-task-emitter');
// Set up the HTTP listener ip & port
var ip = process.env.IP || '0.0.0.0'
var port = process.env.PORT || 3000;
var baseURL = 'http://' + ip + ':' + port;
app.set('ip', ip);
app.set('port', port);
// Expose a rest api
app.use(loopback.rest());
// Add static files
app.use(loopback.static(path.join(__dirname, 'public')));
// Require models
fs
.readdirSync(path.join(__dirname, './models'))
.filter(function(m) {
return path.extname(m) === '.js';
})
.forEach(function(m) {
// expose model over rest
app.model(require('./models/' + m));
});
// Enable docs
app.docs({basePath: baseURL});
// Start the server
app.listen(port, ip, function() {
console.log('StrongLoop Suite sample is now ready at ' + baseURL);
});