背景: 写后台管理系统,涉及大量的增,删除,改,查;而且使用分层开发文件太多,就想到能不能把基本的代码,通过一个代码生成器来生成,从而节约开发时间;
(使用语言nodejs)
tpl文件夹
框架中,专门创建了一个tpl文件夹,用于定义要生成的模板.
注:tpl后缀只是随便取的一个名称,你可以取任意后缀
其中 sqlPool.tpl , 代码如下:
代码语言:javascript复制const mysql = require('promise-mysql');
const pool = mysql.createPool({
host: '{{ host }}',
user: '{{ user }}',
password: '{{ password }}',
database: '{{ database }}',
port: {{ port }},
connectionLimit: 200 // 设置最大的连接数
});
module.exports=pool;
utils文件夹
文件夹中的tplReplace.js,主要是将tpl模板文件中的{{ }} 替换成对应的值;
代码如下:
代码语言:javascript复制function configReplace(tpl,replaceObj) {
return tpl.replace(/{{(.*?)}}/g,function(node,key){
return replaceObj[key.trim()]
})
}
module.exports= {
configReplace
}
界面
db.html 文件,接收用户输入
点击“导出文件” 时,
- 获取用户信息
- 获取tpl 模板信息
- 将用户信息替换模板中的{{ }}
- 将替换后的内容,写入对应的文件
代码如下:
代码语言:javascript复制 bindDBConfig(req,res){ // 生成数据库连接
let host = req.body.txtHost;
let user = req.body.txtUser;
let pwd = req.body.txtPwd;
let port = req.body.txtPort;
let database = req.body.txtDataBase;
var contentObj ={host,user,password:pwd,port,database};
var tplsqlPool = fs.readFileSync(path.resolve(__dirname,"../tpl/sqlPool.tpl"), 'utf8');
var fileContent = configReplace(tplsqlPool,contentObj);
var outPath =path.resolve(__dirname,"../output/dbConfig.js")
fs.writeFile(outPath, fileContent, (err, writeOfContent) => {
try {
if(!err){
res.send("文件导出成功; 路径:output/dbConfig.js");
}
console.log(err,writeOfContent); // undefined
} catch (e) {
console.log('写入内容失败', e)
}
});
}
测试成功,今天的分享就到这里.
关于控制层,模型层,路由层的生成,明天继续^_^