当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript validate.input方法代码示例

本文整理汇总了TypeScript中nova-base.validate.input方法的典型用法代码示例。如果您正苦于以下问题:TypeScript validate.input方法的具体用法?TypeScript validate.input怎么用?TypeScript validate.input使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在nova-base.validate的用法示例。


在下文中一共展示了validate.input方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: helloWorldAdapter

export async function helloWorldAdapter(this: ActionContext, inputs: any, token: Token): Promise<HelloWorldInputs> {
    validate.input(inputs.author, 'Author must be provided');
    const user = await (this.dao as any).fetchUserById(token.userId);
    validate.authorized(user, 'Authorization required');
    return { 
        user    : user, 
        author  : inputs.author
    };
}
开发者ID:herculesinc,项目名称:nova-server,代码行数:9,代码来源:adapters.ts

示例2: parseAuthHeader

export function parseAuthHeader(header: string): AuthInputs {
    validate.authorized(header, 'Authorization header was not provided');
    const authParts = header.split(' ');
    validate.input(authParts.length === 2, 'Invalid authorization header');
    return {
        scheme      : authParts[0],
        credentials : authParts[1]
    };
}
开发者ID:herculesinc,项目名称:nova-server,代码行数:9,代码来源:util.ts

示例3: function

        handlers.push(async function(request: Request, response: Response, next: Function) {
            try {
                // remember current time
                const timestamp = Date.now();

                // build inputs object
                let inputs: any;
                if (config.body && config.body.type === 'files') {
                    inputs = Object.assign({}, config.defaults, request.query, request.params, request.body, { files: request.files });
                }
                else if (config.body && config.body.type === 'multipart') {
                    const filesField = (config.body as MultipartBodyOptions).mapFilesTo;
                    const files = filesField ? { [filesField]: request.files } : undefined;
                    inputs = Object.assign({}, config.defaults, request.query, request.params, request.body, files);
                }
                else {
                    const bodyField = config.body && (config.body as JsonBodyOptions).mapTo;
                    const body = bodyField ? { [bodyField]: request.body } : request.body;
                    inputs = Object.assign({}, config.defaults, request.query, request.params, body);
                }

                // get the executor
                const executor = executorMap.get(inputs[selector]);
                validate.input(!selector || executor, `No actions found for the specified ${selector}`);

                // check authorization header
                let requestor: RequestorInfo;
                const authHeader = request.headers['authorization'] || request.headers['Authorization'];
                if (authHeader) {
                    // if header is present, build and parse auth inputs
                    const authInputs = parseAuthHeader(authHeader);
                    validate(executor.authenticator, 'Cannot authenticate: authenticator is undefined');
                    requestor = {
                        ip  : request.ip,
                        auth: executor.authenticator.decode(authInputs)
                    };
                }
                else {
                    // otherwise, set requestor to the IP address of the request
                    requestor = { ip: request.ip };
                }

                // execute the action
                const result = await executor.execute(inputs, requestor, timestamp);

                // build response
                if (config.response) {
                    let view: any;
                    let viewer: string = requestor.auth
                        ? executor.authenticator.toOwner(requestor.auth)
                        : requestor.ip;

                    if (typeof config.response === 'function') {
                        view = config.response(result, undefined, viewer, timestamp);
                    }
                    else {
                        const viewBuilderOptions = (typeof config.response.options === 'function')
                            ? config.response.options(inputs, result, viewer, timestamp)
                            : config.response.options;
                        view = config.response.view(result, viewBuilderOptions, viewer, timestamp);
                    }

                    if (!view) throw new Exception('Resource not found', HttpStatusCode.NotFound);
                    if (typeof view !== 'object') throw new Exception(`View for ${request.method} ${request.path} returned invalid value`);

                    response.statusCode = HttpStatusCode.OK;
                    const body = JSON.stringify(view);
                    response.setHeader('Content-Type', 'application/json; charset=utf-8');
                    response.setHeader('Content-Length', Buffer.byteLength(body, 'utf8').toString(10));
                    response.end(body, 'utf8');
                }
                else {
                    response.statusCode = HttpStatusCode.NoContent;
                    response.end();
                }
            }
            catch (error) {
                next(error);
            }
        });
开发者ID:herculesinc,项目名称:nova-server,代码行数:80,代码来源:RouteController.ts


注:本文中的nova-base.validate.input方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。