背景
为了方便团队和其它朋友使用我开发的这款代码生成器,特此写一篇入门教程。
环境要求
Node:http://nodejs.org/。
.Net4.5:http://www.microsoft.com/zh-cn/download/details.aspx?id=30653。
happy.node:http://happy.codeplex.com/SourceControl/latest。
目录结构
模板文件和最终生成的代码文件
生成程序
app.js
1 var _ = require('underscore'); 2 3 var DatabaseSchemaReader = require('happy.database.schem.reader').DatabaseSchemaReader; 4 var CodeGenerator = require('happy.code.generator').CodeGenerator; 5 6 var project = { 7 projectDirectory: './outputs', //输出目录 8 rootNamespace: 'AutoGenerateWcfService', //根命名空间 9 connectionString: 'Data Source=192.168.0.14\\SQLEXPRESS;Initial Catalog=Tenoner3.0;Persist Security Info=True;User ID=sa;Password=woshishui2010;', //连接字符串 10 openTables: ['HrEmployees'] //要生成的表,也可以全部生成。 11 }; 12 13 //和数据库无关的代码生成 14 CodeGenerator.executeTemplateDirectory('./templates/commons', project); 15 16 //和数据库相关的代码生成 17 var schemaReader = DatabaseSchemaReader.createSqlClientReader(project.connectionString); 18 schemaReader.readAll(function (error, schema) { 19 if (error) { 20 console.log(error) 21 22 return; 23 } 24 25 _.each(schema.tables, function (table) { 26 if (_.contains(project.openTables, table.name)) { 27 var ejsOptions = _.extend({ 28 table: table, 29 baseNamespace: 'Test' 30 }, project); 31 32 CodeGenerator.executeTemplateDirectory('./templates/tables', ejsOptions); 33 } 34 }); 35 36 console.log('success!') 37 });
常见问题
- 如何学习模板语法?
语法采用的是ejs模板的语法,不懂请参考:https://github.com/visionmedia/ejs,非常简单,十分钟学不会找我。 - 如何详细学习API呢?
- 如何指定输出的文件路径呢?
- 如何设置只生成一次呢?如果文件已经生成,就不要生成了。
- 如何扩展呢?
随便使用了,有问题可以随时交流。
备注
写的还是比较简单,作为一个开始吧!工具里自带了一些demo,也可以作为更好的入门教程使用。