小黑小波比.app服务端常见问题6

</pre>1_打印错误信息</h1><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><h2>1_task中调用自定义错误信息和自定义错误信息方法</h2><div><pre name="code" class="javascript">app.awf.task({
	code: "one",
	method: function(ex) {
		var sql = " ";
		_.sql.query(sql, {
			code: e.params.code
		}).success(function(result) {
			ex.success(ex)
		}).failure({
			ex.error(ex)
		});
	}
}).await({
	success: function(ex) {
		e.result({
			"success": true
		});
	},
	failure: function(ex) {
		e.result({
			"failure":false
		});
	}
});

 1.当await中的定义的success和failure的方法 
 
e.result({
"标题":内容
})
那么在task中
成功:ex.success(ex)
失败:ex.error(ex)
即可
优点:节省代码量
缺点:不能根据情况自定义错误信息
2.当await中的定义的success和failure的方法
e.result(ex)
那么在task中
成功:ex.success({
"标题":内容
})
失败:ex.error({
"标题":内容
})
即可
优点: 自定义错误信息 可以调用自定义错误信息的方法,并打印

缺点: 定义"success":true代码量重复

2_if判断语句的缺陷

1_if语句传来的参数不在判断范围内,导致停留在if语句中

  写了三个if语句.无else 当条件都不满足如何处理?以下的语句,当传来的参数是-2或者别的值,它会停留在这里.不执行下一步.

if (result[0].validate == 2) {
ex.error({
status: task.errors.cancellicense_12
});
}
if (result[0].validate === 0) {
ex.error({
status: task.errors.cancellicense_0
});
}
if (result[0].validate == 1) {
ex.success();
}



为了要抛出异常.或者保证执行下去,这样,如果不满足这三条件.其它的都抛出异常报错!

if (result[0].validate == 2) {
	ex.error({
		status: task.errors.cancellicense_12
	});
} else if (result[0].validate === 0) {
	ex.error({
		status: task.errors.cancellicense_0
	});
} else if (result[0].validate == 1) {
	ex.success();
} else {
	ex.error({
		data: false
	});
}


3_在app.awf.task中调用上一个method的data

1.在这个方法中赋值给data

  

....task({
    code:"a",
    method:function(ex){
        if(e.action.user.utype==1){
            ex.success({
                data:"ok"
            });
        }else{
            ex.success({
                data:"yes"
            });
        }

    }

})....


2.然后在下一个task中调用code:"a"中的data


code: "b",
method: function(ex) {
    if (ex.get('a').data == "ok") { //老师用户直接跳过本步
        ex.success({
            data: "insertteacher"
        });
    } else if (ex.get('a').data =="yes") { //学生电话没有填,跳过本步
        ex.success({
            data: "insertstudent"
        });
    }
}


4_将传来的参数转化为数组

1.查看源代码,重点看schedule:JSON.stringify(e.params.json)

    UpdateScheduleClassJsonApp: {
        attribute: {},
        method: function(e) {
            var _ = this.apis;
            app.awf.task({
                code: "One",
                method: function(ex) {
                    var sql = "update schedule_class set schedule=:schedule where ccode=:ccode and defname=:defname";
                    _.sqlls.query(sql, {
                        ccode: e.params.ccode,
                        defname: e.params.defname,
                        schedule: JSON.stringify(e.params.json)
                    }).success(function(rows) {
                        ex.success({
                            data: true
                        });
                    }).failure(function(err) {
                        ex.error(err);
                    });
                }
            }).await({
                success: function(ex) {
                    e.result({
                        "successTag": true
                    });
                },
                failure: function(ex) {
                    e.result({
                        "successTag": false,
                        "msg": ex.toString().replace("Error:", "")
                    });
                }
            });
        }
    },


2.在node模式下测试

> a={a:1,b:2}
{ a: 1, b: 2 }
> JSON.stringify(a)
'{"a":1,"b":2}'
> 

可以看到它把a转化为数组形式了


5_判断一个对象是否为数组

1_定义

Determines whether an object is an array.
确定对象是否为一个数组

2_格式

Array.isArray(object)


3_返回值

true if object is an array; otherwise, false. If the object argument is not an object, false is returned.

true:如果对象是一个数组;否则不是数组,false.如果对象参数不是一个对象,返回flase


4_例子


var ar = [];
var result = Array.isArray(ar);
// Output: true

var ar = new Array();
var result = Array.isArray(ar);
// Output: true

var ar = [1, 2, 3];
var result = Array.isArray(ar);
// Output: true

var result = Array.isArray("an array");
document.write(result);
// Output: false

5_服务器无法启动



1_uncaught_exception:Error: Cannot find module 'gm'

报错信息

zmzp@zmzp1:~/data/s910$ node single.js 
Default Log Start...
===ERROR:2015-1-13T10:45:40星期二 
uncaught_exception:Error: Cannot find module 'gm'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.app.package (/home/zmzp/data/s910/Server/core/core.js:93:9)
    at Object.<anonymous> (/home/zmzp/data/s910/store/fastdfs.js:14:21)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
=========
 解决方案

1vim init.sh


#!/bin/sh
#sudo apt-get install graphicsmagick
#sudo apt-get install libpq-dev
#sudo apt-get install

然后复制粘贴
2sudo apt-get install graphicsmagick

3../init.sh

6_node single报错

zmzp@zmzp1:~/data/s910$ node single.js 
Default Log Start...
===ERROR:2015-3-10T17:18:47星期二 
uncaught_exception:Error: Cannot find module 'mime-types'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/zmzp/data/s910/store/qiniu.js:14:12)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
=========

===OUTPUT:2015-3-10T17:18:47星期二 
worker will exit...
=========

===OUTPUT:2015-3-10T17:18:49星期二 
worker exit...
=========

===OUTPUT:2015-3-10T17:18:49星期二 
request total : 0
=========

zmzp@zmzp1:~/data/s910$ npm mime-types

Usage: npm <command>

where <command> is one of:
    add-user, adduser, apihelp, author, bin, bugs, c, cache,
    completion, config, ddp, dedupe, deprecate, docs, edit,
    explore, faq, find, find-dupes, get, help, help-search,
    home, i, info, init, install, isntall, issues, la, link,
    list, ll, ln, login, ls, outdated, owner, pack, prefix,
    prune, publish, r, rb, rebuild, remove, repo, restart, rm,
    root, run-script, s, se, search, set, show, shrinkwrap,
    star, stars, start, stop, submodule, t, tag, test, tst, un,
    uninstall, unlink, unpublish, unstar, up, update, v,
    version, view, whoami

npm <cmd> -h     quick help on <cmd>
npm -l           display full usage info
npm faq          commonly asked questions
npm help <term>  search for help on <term>
npm help npm     involved overview

Specify configs in the ini-formatted file:
    /home/zmzp/.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config

npm@1.4.28 /home/zmzp/.nvm/v0.10.32/lib/node_modules/npm
zmzp@zmzp1:~/data/s910$ npm install mime --save
npm WARN package.json 910@1.0.0 No repository field.
npm WARN package.json 910@1.0.0 No README data
mime@1.3.4 node_modules/mime
zmzp@zmzp1:~/data/s910$ node single.js 
Default Log Start...
===ERROR:2015-3-10T17:36:10星期二 
uncaught_exception:Error: Cannot find module 'mime-types'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/zmzp/data/s910/store/qiniu.js:14:12)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
=========

===OUTPUT:2015-3-10T17:36:10星期二 
worker will exit...
=========

===OUTPUT:2015-3-10T17:36:11星期二 
worker exit...
=========

===OUTPUT:2015-3-10T17:36:11星期二 
request total : 0
=========

zmzp@zmzp1:~/data/s910$ npm install mime-types --save
npm WARN package.json 910@1.0.0 No repository field.
npm WARN package.json 910@1.0.0 No README data
mime-types@2.0.9 node_modules/mime-types
└── mime-db@1.7.0
zmzp@zmzp1:~/data/s910$ node single.js 
Default Log Start...
===ERROR:2015-3-10T17:36:33星期二 
uncaught_exception:Error: Cannot find module 'qiniu'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at new exports.store (/home/zmzp/data/s910/store/qiniu.js:24:14)
    at Object.<anonymous> (/home/zmzp/data/s910/Server/core/core.js:674:23)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
=========

===OUTPUT:2015-3-10T17:36:33星期二 
worker will exit...
=========

===OUTPUT:2015-3-10T17:36:35星期二 
worker exit...
=========

===OUTPUT:2015-3-10T17:36:35星期二 
request total : 0
=========

zmzp@zmzp1:~/data/s910$ npm install qiniu 
npm WARN package.json 910@1.0.0 No repository field.
npm WARN package.json 910@1.0.0 No README data
qiniu@6.1.6 node_modules/qiniu
├── crc32@0.2.2
├── mime@1.2.9
├── urllib@0.5.1 (buffer-concat@0.0.1, debug@0.7.2)
└── formstream@0.0.7 (buffer-concat@0.0.1, pause-stream@0.0.11)
zmzp@zmzp1:~/data/s910$ node single.js 
Default Log Start...
===OUTPUT:2015-3-10T17:37:9星期二 
http worker listen ok. port:9080
=========

===OUTPUT:2015-3-10T17:37:9星期二 
http worker listen ok. port:9090
=========


只要npm install xxxx
xxx为缺少模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值