init
This commit is contained in:
71
src/server.js
Normal file
71
src/server.js
Normal 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;
|
||||
});
|
||||
Reference in New Issue
Block a user