jj.js 0.8.4 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -105,7 +105,6 @@ node server.js
105
105
  - **public**:静态资源目录,主要存放css文件、js文件、图片等静态资源。在`./config/app.js`中通过`static_dir`参数可以设置或更改静态目录名字,为空时,则关闭静态访问(系统不会加载静态资源访问的逻辑,最大节省内容,也即所谓的轻量)
106
106
  - **server.js**:应用入口文件,名字可以任意改。
107
107
 
108
- >
109
108
  ### 系统类库
110
109
 
111
110
  ```javascript
@@ -300,9 +299,9 @@ module.exports = Index;
300
299
 
301
300
  ### Db数据库类
302
301
 
303
- > 方法:**async startTrans(async fun)** 开启事务
302
+ > 方法:**async startTrans(fun)** 开启事务
304
303
 
305
- 异步方法,如果fun不为空,并且是函数,则开启事务后,会自动执行此函数,并提交事务,不用再手工提交或回滚事务。
304
+ 异步方法,如果`fun`不为空,并且是函数,则开启事务后,会自动执行此函数,并提交事务,不用再手工提交或回滚事务。`fun`为异步函数。
306
305
 
307
306
  > 方法:**async commit()** 提交事务
308
307
 
@@ -853,7 +852,7 @@ module.exports = self;
853
852
  ```javascript
854
853
  routes = [
855
854
  {url: '/', path: 'app/index/index2'}, // 访问'/',会定位到app应用的index控制的index2方法
856
- {url: '/article/:id.html', path: 'app/article/article', name: 'article'}, // 访问'/article/123.html',会定位到app应用的article控制的article方法;通过this.ctx.parrams.id可以获取到参数id;通过article可以反编译网址,执行this.$url.build(':article', {id: 123}); 生成'/article/123.html'
855
+ {url: '/article/:id.html', path: 'app/article/article', name: 'article'}, // 访问'/article/123.html',会定位到app应用的article控制的article方法;通过this.ctx.params.id可以获取到参数id;通过article可以反编译网址,执行this.$url.build(':article', {id: 123}); 生成'/article/123.html'
857
856
  {url: '/admin', path: 'app/admin/check', type: 'middleware'}, // 访问'/admin',会定位到app应用的admin中间件的check方法
858
857
  {url: '/about', path: 'app/about/index', type: 'view'}, // 访问'/about',会定位到app应用的view模板目录about目录下的index.htm文件,并直接输出文件内容
859
858
  {url: '/:cate/list_:page.html', path: 'cate/cate', name: 'cate_page'}, // 多参数分页示例
@@ -862,7 +861,7 @@ routes = [
862
861
 
863
862
  module.exports = routes;
864
863
  ```
865
- > 注意:本路由配置示例前两条规则为常规用法,后面的非常规用法,不建议使用。如果是但应用模式,可以去掉path参数里的app。
864
+ > 注意:本路由配置示例前两条规则为常规用法,后面的非常规用法,不建议使用。如果是单应用模式,可以去掉path参数里的app。
866
865
 
867
866
  ### 应用入口文件
868
867
 
package/lib/run.js CHANGED
@@ -7,9 +7,13 @@ const compose = require('koa-compose');
7
7
  const Logger = require('./logger');
8
8
 
9
9
  async function run(ctx, next, control_type=cfg_app.controller_folder) {
10
- Logger.debug(ctx.request);
11
- Logger.debug(`Router: {APP: '${ctx.APP}', CONTROLLER: '${ctx.CONTROLLER}', ACTION: '${ctx.ACTION}'}`);
12
- Logger.debug('Params/Get/Post:', ctx.params, ctx.query, ctx.request.body);
10
+ if(cfg_app.app_debug) {
11
+ Logger.debug(ctx.request);
12
+ Logger.debug(`Router(${control_type}): {APP: '${ctx.APP}', CONTROLLER: '${ctx.CONTROLLER}', ACTION: '${ctx.ACTION}'}`);
13
+ Object.keys(ctx.params).length && Logger.debug({Params: ctx.params});
14
+ Object.keys(ctx.query).length && Logger.debug({Get: ctx.query});
15
+ Object.keys(ctx.request.body || {}).length && Logger.debug({Post: ctx.request.body});
16
+ }
13
17
 
14
18
  // 设置根加载器
15
19
  ctx.$ = loader('./', ctx);
package/lib/url.js CHANGED
@@ -12,7 +12,7 @@ const {toLine} = require('./utils/str');
12
12
  class Url extends Context
13
13
  {
14
14
  build(url='', vars, ext='', domain='') {
15
- if(typeof vars != 'object') {
15
+ if(vars && typeof vars != 'object') {
16
16
  [vars, ext, domain] = [{}, vars, ext];
17
17
  }
18
18
  const query = {...vars};
@@ -56,6 +56,7 @@ class Url extends Context
56
56
 
57
57
  if(~url.indexOf(':')) {
58
58
  url = url.replace(/\:([^./]+)/g, (match, key) => {
59
+ key = key.split('(')[0];
59
60
  if(key in query) {
60
61
  const value = query[key];
61
62
  delete query[key];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jj.js",
3
- "version": "0.8.4",
3
+ "version": "0.8.5",
4
4
  "description": "A simple and lightweight MVC framework built on nodejs+koa2",
5
5
  "main": "jj.js",
6
6
  "scripts": {