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 +4 -5
- package/lib/run.js +7 -3
- package/lib/url.js +2 -1
- package/package.json +1 -1
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(
|
|
302
|
+
> 方法:**async startTrans(fun)** 开启事务
|
|
304
303
|
|
|
305
|
-
|
|
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.
|
|
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
|
-
>
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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];
|