From 1fb2111c3cacca9aa5eafa29409a986b3284c4a8 Mon Sep 17 00:00:00 2001 From: sean Date: Wed, 26 Jul 2017 11:26:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9B=A0=E9=83=A8=E7=BD=B2=E4=BB=8Egit?= =?UTF-8?q?=E5=88=A0=E9=99=A4runtime,=E6=94=B9=E4=B8=BA=E6=AF=8F=E6=AC=A1?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90runtime/c?= =?UTF-8?q?onfig.json=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +-- package.json | 3 +-- runtime/config.dev.json | 21 --------------------- runtime/config.json | 18 ------------------ server/config.js | 18 ++++++++++++++++++ server/install.js | 12 +++++++----- server/utils/commons.js | 8 ++++++-- server/utils/db.js | 13 ++++++------- server/utils/initConfig.js | 10 ++++++++++ server/yapi.js | 10 ++++------ server_dist/config.js | 20 ++++++++++++++++++++ server_dist/install.js | 14 ++++++++++++-- server_dist/utils/commons.js | 16 ++++++++++------ server_dist/utils/db.js | 11 +++++------ server_dist/utils/initConfig.js | 23 +++++++++++++++++++++++ server_dist/yapi.js | 10 ++-------- 16 files changed, 125 insertions(+), 85 deletions(-) delete mode 100644 runtime/config.dev.json delete mode 100644 runtime/config.json create mode 100644 server/config.js create mode 100644 server/utils/initConfig.js create mode 100644 server_dist/config.js create mode 100644 server_dist/utils/initConfig.js diff --git a/.gitignore b/.gitignore index a24bada1..955c8f40 100644 --- a/.gitignore +++ b/.gitignore @@ -34,7 +34,6 @@ Thumbs.db # *.tar.gz node_modules/ -runtime/init.lock -runtime/log +runtime/ prd/ dev/ diff --git a/package.json b/package.json index 050cc7a9..ba8aa301 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,7 @@ "main": "index.js", "scripts": { "build-server": "babel server -d server_dist", - "dev-server": "nodemon server_dist/app.js dev", - "start": "webpack-dev-server" + "dev-server": "nodemon server_dist/app.js" }, "repository": { "type": "git", diff --git a/runtime/config.dev.json b/runtime/config.dev.json deleted file mode 100644 index 27be01c1..00000000 --- a/runtime/config.dev.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "port": "3000", - "webhost": "yapi.local.qunar.com", - "adminAccount": "admin@admin.com", - "db": { - "servername": "10.86.40.194", - "DATABASE": "yapi", - "port": 27017, - "user": "test1", - "pass": "test1" - }, - "mail": { - "host": "smtp.163.com", - "port": 465, - "auth": { - "user": "hellosean1025@163.com", - "pass": "helloqunar123" - } - } -} - \ No newline at end of file diff --git a/runtime/config.json b/runtime/config.json deleted file mode 100644 index ff24568d..00000000 --- a/runtime/config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "port": "80", - "webhost": "127.0.0.1", - "adminAccount": "admin@admin.com", - "db": { - "servername": "127.0.0.1", - "DATABASE": "yapi", - "port": 27017 - }, - "mail": { - "host": "smtp.163.com", - "port": 465, - "auth": { - "user": "***********@163.com", - "pass": "*********" - } - } -} \ No newline at end of file diff --git a/server/config.js b/server/config.js new file mode 100644 index 00000000..3271359c --- /dev/null +++ b/server/config.js @@ -0,0 +1,18 @@ +module.exports = { + "port": "3000", + "webhost": "yapi.local.qunar.com", + "adminAccount": "admin@admin.com", + "db": { + "servername": "127.0.0.1", + "DATABASE": "yapi", + "port": 27017 + }, + "mail": { + "host": "smtp.mail.com", + "port": 4652, + "auth": { + "user": "****@mail.com", + "pass": "**********" + } + } +} \ No newline at end of file diff --git a/server/install.js b/server/install.js index 5fafdf4d..8935ef51 100644 --- a/server/install.js +++ b/server/install.js @@ -1,15 +1,17 @@ +import fs from 'fs-extra' +import path from 'path' +import initConfig from './utils/initConfig.js' import yapi from './yapi.js'; import commons from './utils/commons'; -yapi.commons = commons; -import dbModule from './utils/db.js'; +import dbModule from './utils/db.js'; import userModel from './models/user.js' - +yapi.commons = commons; yapi.connect = dbModule.connect() -function install(){ +function install(){ let exist = yapi.commons.fileExist(yapi.path.join(yapi.WEBROOT_RUNTIME, 'init.lock')) if(exist){ return yapi.commons.log('runtime/init.lock文件已存在,请确认您是否已安装。如果需要重新安装,请删掉runtime/init.lock文件'); @@ -40,4 +42,4 @@ function setupSql(){ }) } -install(); \ No newline at end of file +install() \ No newline at end of file diff --git a/server/utils/commons.js b/server/utils/commons.js index 361dcd13..63a9d113 100644 --- a/server/utils/commons.js +++ b/server/utils/commons.js @@ -107,12 +107,16 @@ exports.sendMail = (options, cb) => { } } - yapi.mail.sendMail({ + try{ + yapi.mail.sendMail({ from: yapi.WEBCONFIG.mail.auth.user, to: options.to, subject: 'yapi平台', html: options.contents - }, cb) + }, cb) + }catch(e){ + console.error(e.message) + } } exports.validateSearchKeyword = keyword => { diff --git a/server/utils/db.js b/server/utils/db.js index ff9f8728..5adaee69 100644 --- a/server/utils/db.js +++ b/server/utils/db.js @@ -6,8 +6,6 @@ function model(model, schema){ if(schema instanceof mongoose.Schema === false){ schema = new mongoose.Schema(schema); } - - schema.set('autoIndex', false); return yapi.connect.model(model, schema, model) } @@ -15,11 +13,13 @@ function model(model, schema){ function connect(){ mongoose.Promise = global.Promise; let config = yapi.WEBCONFIG; + let options = {}; + if(config.user){ + options.user = config.db.user, + options.pass = config.db.pass + } - let db = mongoose.connect(`mongodb://${config.db.servername}:${config.db.port}/${config.db.DATABASE}`, { - user: config.db.user, - pass: config.db.pass - }); + let db = mongoose.connect(`mongodb://${config.db.servername}:${config.db.port}/${config.db.DATABASE}`, options); db.then(function (res) { yapi.commons.log('mongodb load success...') @@ -28,7 +28,6 @@ function connect(){ }) autoIncrement.initialize(db); - return db; } diff --git a/server/utils/initConfig.js b/server/utils/initConfig.js new file mode 100644 index 00000000..c4abd6eb --- /dev/null +++ b/server/utils/initConfig.js @@ -0,0 +1,10 @@ +import path from 'path' +import fs from 'fs-extra' +import config from '../config.js' + +let configPath = path.join(path.resolve(__dirname, '../../'), 'runtime', 'config.json') + +fs.writeFileSync(configPath, + JSON.stringify(config, null, "\t"), + {encoding: 'utf8'} +) \ No newline at end of file diff --git a/server/yapi.js b/server/yapi.js index a9baa9bc..d1059762 100644 --- a/server/yapi.js +++ b/server/yapi.js @@ -1,13 +1,10 @@ import path from 'path' import fs from 'fs-extra' import nodemailer from 'nodemailer'; -import prdConfig from '../runtime/config.json' -import devConfig from '../runtime/config.dev.json' -let args = process.argv.splice(2); -let isDev = args[0] === 'dev' ? true : false; +import config from '../runtime/config.json' + var insts = new Map(); let mail; -const config = isDev ? devConfig : prdConfig; const WEBROOT = path.resolve(__dirname, '..'); //路径 const WEBROOT_SERVER = __dirname; @@ -15,6 +12,7 @@ const WEBROOT_RUNTIME = path.join(WEBROOT, 'runtime'); const WEBROOT_LOG = path.join(WEBROOT_RUNTIME, 'log'); const WEBCONFIG = config; +fs.ensureDirSync(WEBROOT_RUNTIME); fs.ensureDirSync(WEBROOT_LOG); @@ -57,4 +55,4 @@ let r = { getInsts: insts } if(mail) r.mail = mail; -module.exports = r; +module.exports = r; \ No newline at end of file diff --git a/server_dist/config.js b/server_dist/config.js new file mode 100644 index 00000000..2a4efade --- /dev/null +++ b/server_dist/config.js @@ -0,0 +1,20 @@ +"use strict"; + +module.exports = { + "port": "3000", + "webhost": "yapi.local.qunar.com", + "adminAccount": "admin@admin.com", + "db": { + "servername": "127.0.0.1", + "DATABASE": "yapi", + "port": 27017 + }, + "mail": { + "host": "smtp.mail.com", + "port": 4652, + "auth": { + "user": "****@mail.com", + "pass": "**********" + } + } +}; \ No newline at end of file diff --git a/server_dist/install.js b/server_dist/install.js index 788441db..7399406e 100644 --- a/server_dist/install.js +++ b/server_dist/install.js @@ -1,5 +1,17 @@ 'use strict'; +var _fsExtra = require('fs-extra'); + +var _fsExtra2 = _interopRequireDefault(_fsExtra); + +var _path = require('path'); + +var _path2 = _interopRequireDefault(_path); + +var _initConfig = require('./utils/initConfig.js'); + +var _initConfig2 = _interopRequireDefault(_initConfig); + var _yapi = require('./yapi.js'); var _yapi2 = _interopRequireDefault(_yapi); @@ -19,8 +31,6 @@ var _user2 = _interopRequireDefault(_user); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _yapi2.default.commons = _commons2.default; - - _yapi2.default.connect = _db2.default.connect(); function install() { diff --git a/server_dist/utils/commons.js b/server_dist/utils/commons.js index 2c4dadd6..71bd5a19 100644 --- a/server_dist/utils/commons.js +++ b/server_dist/utils/commons.js @@ -128,12 +128,16 @@ exports.sendMail = function (options, cb) { _yapi2.default.commons.log('send mail ' + options.to + ' success'); } }; - _yapi2.default.mail.sendMail({ - from: _yapi2.default.WEBCONFIG.mail.auth.user, - to: options.to, - subject: 'yapi平台', - html: options.contents - }, cb); + try { + _yapi2.default.mail.sendMail({ + from: _yapi2.default.WEBCONFIG.mail.auth.user, + to: options.to, + subject: 'yapi平台', + html: options.contents + }, cb); + } catch (e) { + console.error(e.message); + } }; exports.validateSearchKeyword = function (keyword) { diff --git a/server_dist/utils/db.js b/server_dist/utils/db.js index fea97629..35ac61e3 100644 --- a/server_dist/utils/db.js +++ b/server_dist/utils/db.js @@ -18,7 +18,6 @@ function model(model, schema) { if (schema instanceof _mongoose2.default.Schema === false) { schema = new _mongoose2.default.Schema(schema); } - schema.set('autoIndex', false); return _yapi2.default.connect.model(model, schema, model); } @@ -26,11 +25,12 @@ function model(model, schema) { function connect() { _mongoose2.default.Promise = global.Promise; var config = _yapi2.default.WEBCONFIG; + var options = {}; + if (config.user) { + options.user = config.db.user, options.pass = config.db.pass; + } - var db = _mongoose2.default.connect('mongodb://' + config.db.servername + ':' + config.db.port + '/' + config.db.DATABASE, { - user: config.db.user, - pass: config.db.pass - }); + var db = _mongoose2.default.connect('mongodb://' + config.db.servername + ':' + config.db.port + '/' + config.db.DATABASE, options); db.then(function (res) { _yapi2.default.commons.log('mongodb load success...'); @@ -39,7 +39,6 @@ function connect() { }); _mongooseAutoIncrement2.default.initialize(db); - return db; } diff --git a/server_dist/utils/initConfig.js b/server_dist/utils/initConfig.js new file mode 100644 index 00000000..dec7799f --- /dev/null +++ b/server_dist/utils/initConfig.js @@ -0,0 +1,23 @@ +'use strict'; + +var _stringify = require('babel-runtime/core-js/json/stringify'); + +var _stringify2 = _interopRequireDefault(_stringify); + +var _path = require('path'); + +var _path2 = _interopRequireDefault(_path); + +var _fsExtra = require('fs-extra'); + +var _fsExtra2 = _interopRequireDefault(_fsExtra); + +var _config = require('../config.js'); + +var _config2 = _interopRequireDefault(_config); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var configPath = _path2.default.join(_path2.default.resolve(__dirname, '../../'), 'runtime', 'config.json'); + +_fsExtra2.default.writeFileSync(configPath, (0, _stringify2.default)(_config2.default, null, "\t"), { encoding: 'utf8' }); \ No newline at end of file diff --git a/server_dist/yapi.js b/server_dist/yapi.js index 818c6d53..fe35f0ad 100644 --- a/server_dist/yapi.js +++ b/server_dist/yapi.js @@ -20,24 +20,18 @@ var _config = require('../runtime/config.json'); var _config2 = _interopRequireDefault(_config); -var _configDev = require('../runtime/config.dev.json'); - -var _configDev2 = _interopRequireDefault(_configDev); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var args = process.argv.splice(2); -var isDev = args[0] === 'dev' ? true : false; var insts = new _map2.default(); var mail = void 0; -var config = isDev ? _configDev2.default : _config2.default; var WEBROOT = _path2.default.resolve(__dirname, '..'); //路径 var WEBROOT_SERVER = __dirname; var WEBROOT_RUNTIME = _path2.default.join(WEBROOT, 'runtime'); var WEBROOT_LOG = _path2.default.join(WEBROOT_RUNTIME, 'log'); -var WEBCONFIG = config; +var WEBCONFIG = _config2.default; +_fsExtra2.default.ensureDirSync(WEBROOT_RUNTIME); _fsExtra2.default.ensureDirSync(WEBROOT_LOG); if (WEBCONFIG.mail) {