arche-core

2.3.0 • Public • Published

arche-core

Arche-platform is a quick development platform written in node. This is the App core of it.

usage

set the app folder with base options. then the Arche object will automatically establishes the KOA applications.

app folder contents

  • config
    • local.cjs : default if not set process.env.NODE_ENV
    • {env}.cjs :choise by process.env.NODE_ENV
  • controller
    • {folder}
      • {name}.cjs :use /folder/name url to access
  • service
    • {folder}
      • {name}.cjs :optional
  • static
    • {libs with version} :three-party libraries that do not change permanently
  • view (页面)
    • {*}.html :html/js/css/img 各类html静态资源
    • {*}.cjs :run at server side to render dynamic page
    • {*}.art :page template with art-template

controller usage

module.exports = class {
  // can be one async function. same to koa middleware
  async act_1(ctx) {
    // from querystring
    let { code } = ctx.query;
    // call service
    let srv_user = ctx.service('oa.user');
    let rows = await srv_user.check(code);
    ctx.body = rows;
  }

  // can be array of async function
  act_2 = [async (ctx, next) => {
    // do database query with card model
    let { rows } = await ctx.db.cardr('用户表', ['ID'], {
      filter: ['ID', '=', res.id]
    });
    ctx.something = rows;
    await next();
  }, async (ctx, next) => {
    ctx.body = ctx.something;
  }];
};

service usage

module.exports = class {
  constructor(app) {
    this.app = app;
  }

  async list(id) {
    let { query } = this.app;
    return query.cardr('用户表', '*', id);
  }
};

view usage

setp 1. in cjs file:

module.exports = async (ctx) => {
  ctx.render('user.home', data); // 渲染view中的./home.art模板文件
};

setp 2. in user/home.art file:

<html>
<body>
<% var temp = data.sub.content; %>
</body>
</html>

goto https://github.com/aui/art-template

Readme

Keywords

none

Package Sidebar

Install

npm i arche-core

Weekly Downloads

9

Version

2.3.0

License

ISC

Unpacked Size

24.6 kB

Total Files

7

Last publish

Collaborators

  • wbenxin