server

server(func_name, params, callback)

使用范围: client

编程语言: javascript

父类: AbstractItem

描述说明

使用 sever 方法在客户端可以执行一个在实体项的服务端模块中定义的函数。

sever 方法会执行一个在实体项的服务端模块中定义的函数,函数名称形式为 func_name , 而且可以在 sever 方法的 参数(params) 中指定函数需要的参数。

如果指定了回调,服务器上的函数将异步执行,随后使用服务器函数执行结果作为参数执行 callback , 否则函数将同步执行并返回服务器函数的结果。

如果函数在服务端上的操作抛出异常,并且未传递回调参数(同步执行),客户端将抛出异常。 如果存在回调参数,它将作为参数传递给回调。

当服务端函数执行期间引发异常时,客户端的应用程序会抛出包含服务端异常文本的异常。

服务器上函数的第一个参数必须是 item,它必须跟随客户端函数中指定的参数。

参数(params) 是一个参数列表,如果没有参数,可以省略 参数(params)

示例

发票(Invoices)* 业务台账的服务端模块中,定义函数:

def get_total(item, id_value):
    result = 0;
    copy = item.copy()
    copy.set_where(id=id_value)
    copy.open()
    if copy.record_count():
        result = copy.total.value
    else:
        raise Exception, 'Journal "invoices" does not have a record with id  %s' % id_value
    return result;

下面在 发票(Invoices)* 业务台账的客户端模块的代码中,将调用这个服务端的函数:

task.invoices.server('get_total', [17], function(total, err) {
    if (err) {
        throw err;
    }
    else {
        console.log(total);
    }
});