zoukankan      html  css  js  c++  java
  • 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,也可以作为更好的入门教程使用。

  • 相关阅读:
    kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.
    MYSQL 大数据
    MYSQL 数据库优化
    原始代理需要改进的地方
    JDK动态代理
    使用CGLIB生成代理
    Spring
    Struts2面试题
    hibernate面试题
    Mac下创建隐藏用户
  • 原文地址:https://www.cnblogs.com/happyframework/p/3091276.html
Copyright © 2011-2022 走看看