zoukankan      html  css  js  c++  java
  • Nancy异步用法

    个人笔记,记录Nancy异步用法

    基类,所有请求都将首先执行该类,并执行Before事件
    namespace CxyAdvert.Base
    {
        public class BaseNancyModel : Nancy.NancyModule
        {
            public BaseNancyModel()
            {
                Get["/"] = param =>
                {
                    return "ADVERT SYSTEM";
                };
            }
            public BaseNancyModel(string path)
                : base(path)
            {
                Before += async (context, token) =>
                {
                    return await VerifyAuth(context);
                };
    
                //After += async (context, token) =>
                //{
                //    await VerifyAuth(context);
                //};
            }

         /// <summary> /// Before执行的函数,返回null将继续执行路由指定接口,返回Response将结束并返回 /// </summary> /// <param name="nancyContext"></param> /// <returns></returns> private async Task<Response> VerifyAuth(Nancy.NancyContext nancyContext) { try { var httpMethod = nancyContext.Request.Method; if (httpMethod.ToUpper() == "POST") { var requestParms = HttpHelper.GetPostValue(nancyContext.Request.Body); if (requestParms == "") { return Response.AsJson(new ResultMsg() { code = -2, errormsg = "参数值不能为空" }); } else { } } return null; } catch (Exception error) { Logger.Error("BaseNancyModel ERROR:" + error); return Response.AsJson(new ResultMsg() { code = -2, errormsg = error.Message }); } }      public object GetEncryptValue(object msg) { var strJson = JsonConvert.SerializeObject(msg, StringFormat.jsonSerializerSettings); return strJson ; } } }
    
    
    接口类,所有接口类继承基类BaseNancyModel,GetEncryptValue函数实现于基类BaseNancyModel中
    namespace CxyAdvert
    {
        public class AdvertSericeApi : BaseNancyModel
        {
            public AdvertSericeApi() :
                base("/cxy/api/advert/")
            {
                IAdvertSerice service = new AdvertSerice();
    
                Post["getshowadverts", true] = async (param, token) =>
                {
                    return GetEncryptValue(await service.GetShowAdverts(BaseInputParam, ThridUser));
                };
    
                Post["getadverts", true] = async (param, token) =>
                {
                    return GetEncryptValue(await service.GetAdverts(BaseInputParam, ThridUser));
                };
            }
        }
    }
    
    
    


  • 相关阅读:
    23、Linux实操篇——RPM与YUM
    22、Linux实操篇——进程管理(重点)
    21、Linux实操篇——网络配置
    20、Linux实操篇——磁盘分区、挂载
    19、Linux实操篇——组管理和权限管理
    18、实操篇——实用指令
    17、实操篇——用户管理
    UVALive 2521 Game Prediction 题解
    UVALive 2517 Moving Object Recognition(模拟)
    UVALive 2324 Human Gene Functions(动态规划)
  • 原文地址:https://www.cnblogs.com/pudefu/p/7527403.html
Copyright © 2011-2022 走看看