Files
vic-server-mongo/script.js
chaosBreaking dc5423d356 init
2019-08-31 14:59:13 +08:00

31 lines
1.5 KiB
JavaScript

'use strict';
const commander = require('commander');
const fs = require('fs');
const cp = require('child_process');
const template = function (name, item = '') {
switch (item) {
case 'controller':
return `module.exports = {\n\n};`;
case 'model':
// eslint-disable-next-line no-case-declarations
const schemaName = name.split('').map((e,i) => i===0 ? e.toUpperCase() : e).join('');
return `const mongoose = require('mongoose');\n\nconst ${schemaName}Schema = new mongoose.Schema({\n\n},{});\n\nconst ${schemaName}Model = mongoose.model('${schemaName}', ${schemaName}Schema);\n\nmodule.exports = ${schemaName}Model;`;
case 'service':
return `const indexRoute = '/${name}';\nconst controller = require('./${name}.controller');\nconst services = [];\n\nmodule.exports = services.map(service => {\n// 可以在此处对要导出的服务map进行统一处理\n\tservice.url = indexRoute + service.url;\n\treturn service;\n});`;
}
};
commander
.version(this.VERSION, '-v, --version')
.option('-n, --name <name>', 'module name.')
.parse(process.argv);
const name = commander.name;
const subList = ['controller', 'model', 'service'];
cp.execSync(`mkdir ./src/modules/${name}`);
subList.map(item => {
cp.execSync(`touch ./src/modules/${name}/${name}.${item}.js`);
fs.writeFile(`./src/modules/${name}/${name}.${item}.js`, `'use strict';\n\n` + template(name, item) , () => { console.log(`module ${name} - ${item} 创建完毕`); });
});