您的位置:首页 > Web前端 > Node.js

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

2013-05-21 18:57 726 查看

背景

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

环境要求

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

var _ = require('underscore');

var DatabaseSchemaReader = require('happy.database.schem.reader').DatabaseSchemaReader;
var CodeGenerator = require('happy.code.generator').CodeGenerator;

var project = {
projectDirectory: './outputs', //输出目录
rootNamespace: 'AutoGenerateWcfService', //根命名空间
connectionString: 'Data Source=192.168.0.14\\SQLEXPRESS;Initial Catalog=Tenoner3.0;Persist Security Info=True;User ID=sa;Password=woshishui2010;', //连接字符串
openTables: ['HrEmployees'] //要生成的表,也可以全部生成。
};

//和数据库无关的代码生成
CodeGenerator.executeTemplateDirectory('./templates/commons', project);

//和数据库相关的代码生成
var schemaReader = DatabaseSchemaReader.createSqlClientReader(project.connectionString);
schemaReader.readAll(function (error, schema) {
if (error) {
console.log(error)

return;
}

_.each(schema.tables, function (table) {
if (_.contains(project.openTables, table.name)) {
var ejsOptions = _.extend({
table: table,
baseNamespace: 'Test'
}, project);

CodeGenerator.executeTemplateDirectory('./templates/tables', ejsOptions);
}
});

console.log('success!')
});


常见问题

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

如何详细学习API呢?





如何指定输出的文件路径呢?



如何设置只生成一次呢?如果文件已经生成,就不要生成了。



如何扩展呢?
随便使用了,有问题可以随时交流。

备注

写的还是比较简单,作为一个开始吧!工具里自带了一些demo,也可以作为更好的入门教程使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: