Skip to content

Commit dc7ec9e

Browse files
committed
可以同时启动http和https
1 parent a777c0c commit dc7ec9e

File tree

2 files changed

+53
-86
lines changed

2 files changed

+53
-86
lines changed

server/config.json

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"restApiRoot": "/api/v1",
33
"host": "0.0.0.0",
44
"port": 4000,
5+
"https-port": 4015,
56
"remoting": {
67
"context": {
78
"enableHttpContext": false

server/server.js

+52-86
Original file line numberDiff line numberDiff line change
@@ -3,61 +3,20 @@
33
// var path = require('path');
44
//
55
// var app = module.exports = loopback();
6-
// var http = require('http');
7-
// var https = require('https');
8-
// var sslCert = require('./private/ssl_cert');
9-
// var httpsOptions = {
10-
// key: sslCert.privateKey,
11-
// cert: sslCert.certificate
12-
// };
13-
// app.httpsOptions = httpsOptions;
14-
// // Bootstrap the application, configure models, datasources and middleware.
15-
// // Sub-apps like REST API are mounted via boot scripts.
16-
// boot(app, __dirname, function (err) {
17-
// if (err) throw err;
18-
// });
19-
// app.start = function (httpOnly) {
20-
// // start the web server
21-
// // return app.listen(function () {
22-
// // app.emit('started');
23-
// // var baseUrl = app.get('url').replace(/\/$/, '');
24-
// // console.log('Web server listening at: %s', baseUrl);
25-
// // if (app.get('loopback-component-explorer')) {
26-
// // var explorerPath = app.get('loopback-component-explorer').mountPath;
27-
// // console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
28-
// // }
29-
// // });
30-
//
31-
// //https 方式启动
32-
// var port = app.get('port');
33-
// console.log(port)
34-
// var host = app.get('host');
35-
// var httpServer = http.createServer(app).listen(port, host, function () {
36-
//
37-
// var httpsPort = app.get('https-port');
38-
// var httpsServer = https.createServer(httpsOptions, app).listen(httpsPort,
39-
// host, function () {
406
//
7+
// app.start = function () {
8+
// // start the web server
9+
// return app.listen(function () {
4110
// app.emit('started');
42-
//
43-
// app.close = function (cb) {
44-
// app.removeAllListeners('started');
45-
// app.removeAllListeners('loaded');
46-
// httpServer.close(function () {
47-
// httpsServer.close(cb);
48-
// });
49-
// };
50-
// });
51-
// });
52-
//
53-
//
54-
//
11+
// var baseUrl = app.get('url').replace(/\/$/, '');
12+
// console.log('Web server listening at: %s', baseUrl);
13+
// if (app.get('loopback-component-explorer')) {
14+
// var explorerPath = app.get('loopback-component-explorer').mountPath;
15+
// console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
16+
// }
17+
// });
5518
// };
5619
//
57-
// // start the server if `$ node server.js`
58-
// if (require.main === module) {
59-
// app.start();
60-
// }
6120
// //var staticPath = null;
6221
// //
6322
// //staticPath = path.resolve(__dirname, '../client/');
@@ -67,53 +26,60 @@
6726
//
6827
// // Bootstrap the application, configure models, datasources and middleware.
6928
// // Sub-apps like REST API are mounted via boot scripts.
70-
// // boot(app, __dirname, function (err) {
71-
// // if (err) throw err;
72-
// //
73-
// // // start the server if `$ node server.js`
74-
// // if (require.main === module)
75-
// // app.start();
76-
// // });
77-
78-
79-
29+
// boot(app, __dirname, function (err) {
30+
// if (err) throw err;
31+
//
32+
// // start the server if `$ node server.js`
33+
// if (require.main === module)
34+
// app.start();
35+
// });
8036

8137
var loopback = require('loopback');
8238
var boot = require('loopback-boot');
8339

8440
var http = require('http');
8541
var https = require('https');
86-
var sslConfig = require('./private/ssl_cert');
87-
42+
var sslCert = require('./private/ssl_cert');
43+
var httpsOptions = {
44+
key: sslCert.privateKey,
45+
cert: sslCert.certificate
46+
};
8847
var app = module.exports = loopback();
8948

9049
// boot scripts mount components like REST API
9150
boot(app, __dirname);
9251

93-
app.start = function(httpOnly) {
94-
if (httpOnly === undefined) {
95-
httpOnly = process.env.HTTP;
96-
}
97-
var server = null;
98-
if (!httpOnly) {
99-
var options = {
100-
key: sslConfig.privateKey,
101-
cert: sslConfig.certificate,
102-
};
103-
server = https.createServer(options, app);
104-
} else {
105-
server = http.createServer(app);
106-
}
107-
server.listen(app.get('port'), function() {
108-
var baseUrl = (httpOnly ? 'http://' : 'https://') + app.get('host') + ':' + app.get('port');
109-
app.emit('started', baseUrl);
110-
console.log('LoopBack server listening @ %s%s', baseUrl, '/');
111-
if (app.get('loopback-component-explorer')) {
112-
var explorerPath = app.get('loopback-component-explorer').mountPath;
113-
console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
114-
}
52+
app.start = function() {
53+
// start the web server
54+
// return app.listen(function() {
55+
// app.emit('started');
56+
// var baseUrl = app.get('url').replace(/\/$/, '');
57+
// console.log('Web server listening at: %s', baseUrl);
58+
// if (app.get('loopback-component-explorer')) {
59+
// var explorerPath = app.get('loopback-component-explorer').mountPath;
60+
// console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
61+
// }
62+
// });
63+
64+
var port = app.get('port');
65+
var host = app.get('host');
66+
var httpServer = http.createServer(app).listen(port, host, function() {
67+
68+
var httpsPort = app.get('https-port');
69+
var httpsServer = https.createServer(httpsOptions, app).listen(httpsPort,
70+
host, function() {
71+
72+
app.emit('started');
73+
74+
app.close = function(cb) {
75+
app.removeAllListeners('started');
76+
app.removeAllListeners('loaded');
77+
httpServer.close(function() {
78+
httpsServer.close(cb);
79+
});
80+
};
81+
});
11582
});
116-
return server;
11783
};
11884

11985
// start the server if `$ node server.js`

0 commit comments

Comments
 (0)