init
This commit is contained in:
30
script.js
Normal file
30
script.js
Normal file
@@ -0,0 +1,30 @@
|
||||
'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} 创建完毕`); });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user