This commit is contained in:
chaosBreaking
2019-08-31 14:59:13 +08:00
commit dc5423d356
65 changed files with 3813 additions and 0 deletions

71
src/server.js Normal file
View File

@@ -0,0 +1,71 @@
'use strict';
/**
1.导入express组件app
2.创建数据库连接
3.注册路由
4.启动node服务
*/
const fs = require('fs');
const path = require('path');
const app = require('./app.js');
const Socket = require('socket.io');
const inject = require('./common/Provider').inject;
// const cluster = require('cluster')
module.exports = () => inject(function runServer (SysConfig) { // 配置并启动 Web 服务
mylog.info('★★★★★★★★ Starting Server ★★★★★★★★');
const greenlock = SysConfig && SysConfig.sslType==='greenlock' ? require('greenlock-express').create({
version: 'draft-11',
server: SysConfig.netType==='devnet' // for test: acme-staging-v02
? 'https://acme-staging-v02.api.letsencrypt.org/directory'
: 'https://acme-v02.api.letsencrypt.org/directory',
agreeTos: true,
communityMember: false,
store: require('greenlock-store-fs'),
email: 'ssl@faronear.org',
approvedDomains: SysConfig.sslDomainList,
configDir: path.resolve(__dirname, 'ssl'),
app,
}) : null;
/** * 启动 Web 服务 ***/
let webServer;
if (SysConfig.protocol === 'http') {
webServer = require('http').createServer(app).listen(SysConfig.port, function (err) {
if (err) mylog.info(err);
else mylog.info(`Server listening on ${SysConfig.protocol}://${SysConfig.host}:${SysConfig.port} with for ${app.settings.env} environment`);
});
} else if (SysConfig.protocol === 'https') {
webServer = require('https').createServer(SysConfig.sslType === 'greenlock' ? greenlock.httpsOptions : {
key: fs.readFileSync(SysConfig.sslKey),
cert: fs.readFileSync(SysConfig.sslCert),
}, app).listen(SysConfig.port, function (err) {
if (err) mylog.error(err);
else console.log(`Server listening on ${SysConfig.protocol}://${SysConfig.host}:${SysConfig.port} for ${app.settings.env} environment`);
});
} else if ('httpall' === SysConfig.protocol) {
let portHttp = SysConfig.port ? SysConfig.port : 80;
// let portHttps = (SysConfig.port && SysConfig.port !== 80) ? SysConfig.port + 443 : 443
let portHttps = 443;
if (SysConfig.sslType === 'greenlock') {
webServer = greenlock.listen(portHttp, portHttps, function (err) {
if (err) console.log(err);
else console.log(`Server listening on [${SysConfig.protocol}] http=>https://${SysConfig.host}:${portHttp}=>${portHttps} for ${app.settings.env} environment`);
});
} else {
webServer = require('https').createServer({
key: fs.readFileSync(SysConfig.sslKey),
cert: fs.readFileSync(SysConfig.sslCert),
// ca: [ fs.readFileSync(SysConfig.sslCA) ] // only for self-signed certificate: https://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener
}, app).listen(portHttps, function (err) {
if (err) console.log(err);
else console.log(`Server listening on [${SysConfig.protocol}] https://${SysConfig.host}:${portHttps} for ${app.settings.env} environment`);
});
}
}
// const socket = Socket(webServer);
return webServer;
});