NodeJs:基于Node的代码生成器 之 入门教程

背景

为了方便团队和其它朋友使用我开发的这款代码生成器,特此写一篇入门教程。

环境要求

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 });

常见问题

  1. 如何学习模板语法?
    语法采用的是ejs模板的语法,不懂请参考:https://github.com/visionmedia/ejs,非常简单,十分钟学不会找我。
  2. 如何详细学习API呢?

  3. 如何指定输出的文件路径呢?
  4. 如何设置只生成一次呢?如果文件已经生成,就不要生成了。
  5. 如何扩展呢?
    随便使用了,有问题可以随时交流。

备注

写的还是比较简单,作为一个开始吧!工具里自带了一些demo,也可以作为更好的入门教程使用。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值