代码生成器1:框架 与 数据库连接生成

2022-07-22 14:59:16 浏览数 (1)

背景: 写后台管理系统,涉及大量的增,删除,改,查;而且使用分层开发文件太多,就想到能不能把基本的代码,通过一个代码生成器来生成,从而节约开发时间;

(使用语言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 文件,接收用户输入

点击“导出文件” 时,

  1. 获取用户信息
  2. 获取tpl 模板信息
  3. 将用户信息替换模板中的{{ }}
  4. 将替换后的内容,写入对应的文件

代码如下:

代码语言: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)
            }
        });
    }

测试成功,今天的分享就到这里.

关于控制层,模型层,路由层的生成,明天继续^_^

0 人点赞