官术网_书友最值得收藏!

How it works...

Let's take a quick look at what happened in the previous section. The interesting parts are steps 3 and 4.

In step 3, you installed the Nancy.Hosting.Aspnet package and the Nancy NuGet packages into the newly created HelloNancy project. This will download the Nancy assembly and the Nancy.Hosting.Aspnet assembly from the NuGet gallery, and add references to both in the HelloNancy project. The Nancy assembly is the Nancy framework, and the Nancy.Hosting.Aspnet assembly is an adapter for running the Nancy application on top of ASP.NET. In Nancy terms, this is called hosting Nancy on ASP.NET. Hosting is the subject of the Separating application and hosting (Advanced) recipe.

In step 4, you created a NancyModule class. Nancy modules are at the heart of Nancy applications. They are used to define which routes the application accepts and how it handles each one. For instance, the NancyModule class in step 4 defines one route and a handler for that route. This is done in the following line:

      Get["/"] = _ => "Hello Nancy World";

This tells Nancy that an HTTP GET request to the route "/" should be handled by the lambda expression on the right-hand side of the = sign. In other words, each time Nancy receives an HTTP GET "/", it calls the following line of code:

_ => "Hello Nancy World";

In the previous line of code, the lambda expression takes one parameter called _. It doesn't use the parameter for anything but simply returns the Hello Nancy World string back to Nancy. Since nothing went wrong, Nancy will create an HTTP 200 OK response with Hello Nancy World in the body and return it as the response to HTTP GET "/".

On a side note, I like to adopt the convention that whenever a parameter in a lambda is not used in the body of the lambda, I call it _. I like this because visually it makes the parameter almost disappear, so I instantly know that it is not used. On the other hand, if it is used, I will always give it a name. I will be using _ throughout this book for unused parameters.

On start-up, Nancy will find all Nancy modules in all loaded assemblies and instantiate each one. In the case of the module from step 4 in the previous section, the constructor containing the route definition discussed previously is run.

主站蜘蛛池模板: 孝义市| 新乐市| 禹州市| 大悟县| 永嘉县| 安阳县| 吴堡县| 冷水江市| 浦东新区| 且末县| 松溪县| 鹤山市| 泊头市| 凤山县| 历史| 龙江县| 昭平县| 定西市| 磐石市| 通河县| 泌阳县| 拜城县| 景谷| 海原县| 望奎县| 虹口区| 吐鲁番市| 五大连池市| 滁州市| 分宜县| 青阳县| 长海县| 瓦房店市| 屯留县| 邢台市| 东丽区| 囊谦县| 临洮县| 黎平县| 芦溪县| 鹿泉市|