Code-auto
通过命令行自动根据自定义模板生成代码文件
Install
*./codeAuto.js*
npm install code-auto
var codeAuto=require("code-auto");
const config = {
dialect: "mysql", 数据库类型(mysql,Postgres,Sqlite3,MSSQL)
port: '3306', 端口(仅mysql和Postgres)
host: "127.0.0.1", 数据库服务器地址
username: "root", 数据库账号
pwd: "password", 数据库密码
storage: "database", 数据库名
Templates: './codetpl', 模板文件夹路径 (模板定义为*.ct)
codetype: "js" 代码类型(决定columns变量中CodeType) ( c# || java || js )
}
codeAuto.run(config,function(err){
if(err){
throw new Error(err);
}
console.log("完成")
})
$node node codeAuto.js
依赖
在使用Code-auto 你需要在全局安装正确你使用的数据库
Example for MySQL/MariaDB
npm install -g mysql
Example for Postgres
npm install -g pg pg-hstore
Example for Sqlite3
npm install -g sqlite
Example for MSSQL
npm install -g mssql
模板内置变量
tableName:表名
columns:当前表的所有列
columns item:
name 列名
type 数据类型
CodeType 代码内使用的数据类型(根据配置代码类型生成( c# || java || js ))
primaryKey (false || true) 是否主键
allowNull (false || true) 是否可以为NULL
defaultValue 默认值
模板定义
模板必须包含在template内,同时在template上定义output属性做为生成输出路径
列
<template output='./model'>
/* jshint indent: 2 */
module.exports = app => {
const sequelize = app.Sequelize;
const entity = {
{{#columns.forEach(function(column,index){ }}
{{column.name}}: {
type: {{column.CodeType}},
allowNull: {{column.allowNull}},
{{column.primaryKey?"primaryKey:"+column.primaryKey+",":""}}
{{column.autoIncrement?"autoIncrement:"+column.autoIncrement:""}}
}{{index==(columns.length-1)?'':','}}
{{# }); }}
}
const nav_cat = app.model.define('{{tableName}}', entity, {
tableName: '{{tableName}}'
});
{{tableName}}.getModel=model=>{
if(typeof model!=="object"){
throw new Error("请求参数错误");
return false;
}
let newobj={};
for (var key in model) {
if (entity.hasOwnProperty(key)) {
newobj[key]=model[key];
}
}
return newobj;
}
return {{tableName}};
};
</template>