问题标签 [nancy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
690 浏览

razor - Nancy:Razor View Engine:是否支持 _ViewStart 文件?

你能告诉我Nancy 是否支持特殊的 Razor 文件_ViewStart.cshtml吗?我知道它被安排包含(在这里)。你能告诉我它现在是否可用吗?它目前不适合我。

谢谢

0 投票
1 回答
1880 浏览

forms-authentication - 南希:FormsAuthentication - 入门

我正在尝试遵循Nancy.Demo.Authentication.Forms示例,但我遇到了问题,因为示例代码现在看起来已经过时了。如果这个问题很长,我很抱歉,但我不想错过我的错误。所以这是我到目前为止所做的:

我通过包管理器控制台(VS11 beta)成功安装了认证包

我编写了 IUserMapper 的实现,它依赖于我的 RavenDB 会话提供程序并使用它来查找和验证用户

我已经在我的 User 类中添加了一个属性来满足使 cookie 更安全所需的 Guid 标识符字段(我已经阅读了 grumpydev 的帖子并理解为什么需要这个 Guid,但是将它作为一个属性字段在用户等级?)

最后,我通过直接从演示中窃取代码(上面的链接)为我的引导程序添加了更多设置。这是我遇到问题的地方。代码似乎已更改。

编辑 1 事实证明我的错误是愚蠢的(一个不正确的using陈述 - 见下面的评论)。上面的所有代码现在都可以正常工作,所以我将保留这个问题。

0 投票
1 回答
257 浏览

ravendb - RavenDB:如何在我的单元测试中使用 RavenProfiler?

我正在使用 NancyFX + RavenDB。我目前正在尝试实施 Ayende 推荐的非规范化引用技术,以从 AggregateRoot 构建域引用。如果您阅读该链接,您会发现诀窍是加载父实例,然后使用 RavenDB 的“包含”语句预取引用的实例。

我已经完成了所有这一切,它似乎可以工作,但我正在努力通过单元测试来确定引用的实例是否真的是预取的。这是我的单元测试中的一个片段来说明:

上面的单元测试检查我是否可以从我的假数据库(它是 RavenDB 的内存中嵌入式实例)加载我的实例,但它不检查它们是否是预取的。

我想也许我可以使用 RavenProfiler。也许这会计算我可以断言的数据库请求的数量(例如,如果请求> 1,上面的单元测试将失败)。

为了完成这项工作,我必须将 MVCIntegration 包安装到我的单元测试项目中(哎哟)

我还必须添加对 System.Web 的引用,这让我不寒而栗。我认为这行不通。

然后我将适当的初始化添加到我的 Fake db 提供程序中,如下所示:

最后,我尝试在单元测试结束时从 RavenProfiler 检索某种值:

这没有用!它在 RavenProfiler 中失败了,因为 HttpContext 为空——这就是我对 System.Web 的预感。那好吧。

那么,如何计算对我的 RavenDB 实例发出的请求数?这是否可以在不需要 MVC 或 System.Web 的情况下完成,因此可以轻松地将其固定到单元测试中?

谢谢

0 投票
3 回答
733 浏览

c# - Nancy Framework 的 Hello world 应用程序无法编译

我正在尝试让 Nancy 运行一个 hello world web 应用程序。它不会编译并突出显示Get["/"] = parameters => "Hello World";并且无法识别此符号。

我一定遗漏了一些简单的东西,但在网上找不到关于这个问题的任何东西。

脚步:

  1. 创建了一个新的 ASP.NET Web 应用程序
  2. 使用 NuGet 获得并安装了 Nancy.Hosting.Aspnet
  3. 检查 web.config 是否由 NuGet 配置并且看起来正确
  4. 添加了一个具有以下代码的新类:

    结果:Get["/"] = parameters => "Hello World";无法编译

0 投票
1 回答
1819 浏览

c# - Nancy 测试项目找不到视图

尝试从测试项目中测试 Nancy 模块时遇到了一些障碍。我的测试代码看起来很标准:

当我的模块尝试渲染视图时,我得到一个无法找到视图异常。如果我正常运行项目,模块会找到视图。只有在从测试项目中调用时,模块才能找到它。

0 投票
1 回答
1896 浏览

json - NancyFX:如何通过 BrowserResponse.Body.DeserializeJson 反序列化动态类型(单元测试)

我有以下 NancyFX 单元测试。我使用Shouldly断言库来提供一组扩展方法.Should---

此测试调用AssessmentService定义为的 uri,它返回一个简单的 JSON 对象定义,该对象定义具有类型 (enum)/assessment/state/" + user.Id的单个属性,要么,要么。StateAssessmentStatePassedFailedNotStarted

这是服务处理程序,因此您可以看到没有任何技巧。

这是此服务调用返回的 JSON 示例:

一切正常,直到我尝试反序列化假 Nancy 浏览器返回的 JSON。BrowserResponse.Body首先,我尝试使用 Nancy对象提供的内置方法:

这将反序列化为一个空对象。这不好。但是,如果我们使用 Newtonsoft 等价物,那么一切都很好(几乎)。

JSON 反序列化现在可以工作,因此以下应该断言通过了出色的结果:

但是,由于我怀疑与匿名类型有关的原因,以下行在运行时失败(它编译得很好)。

应该例外

这是相当多的信息。让我把它提炼成两个问题:

  1. 鉴于 Newtonsoft 版本可以,为什么 Nancy 内置的 JSON 反序列化器不起作用?

  2. 如何使用 JSON 反序列化生成的动态类型,以便应该扩展方法不会导致运行时异常?

谢谢

0 投票
1 回答
326 浏览

.net - 两个 .net 应用程序之间的日期序列化

我有一个使用以下序列化代码的 Nancy JSON REST 服务...

FormatterExtensions.AsJson(this.Response, insightManager.CaseSummary(x.caseId));

然后由...脱毒

并且insightManager.CaseSummary(x.caseId) 代码返回一个包含可为空的日期时间的类的实例。

问题是在序列化/反序列化过程中,日期会损失一个小时,我认为这是某种 UTC 偏移量。这有点烦人,因为无论如何我只想要日期部分,所以看起来所有日期都是前一天。

我已经看到很多关于在 javascript 中修复 tis 的帖子,但是当我的代码的两个部分都使用“标准”序列激光器时,我不确定如何应用它们。

0 投票
1 回答
604 浏览

unit-testing - NancyFX:我可以强制我的单元测试浏览器默认进行身份验证吗?

这是一个单元测试,显示我正在验证我的 Nancy 浏览器(其他代码已被剪掉)。我想知道是否有更聪明、更干燥的方法来做到这一点?

0 投票
2 回答
5419 浏览

dynamic-language-runtime - NancyFX:如何检查查询字符串/表单值是否已正确传递给我的处理程序?

Nancy 通过一个dynamic变量将我的查询字符串和表单值传递给我的处理程序。下面的示例显示了通过 Nancy 请求传递给 POST 处理程序的表单值,例如Request.Form.xxx

处理程序

您可以看到我将userid转换为字符串,然后使用字符串扩展方法检查值是 null 还是空字符串(相当于string.IsNullOrEmpty())。

我更喜欢在动态类型上使用扩展方法,这样我就可以在做任何其他事情之前执行我的健全性检查。我想要这样的代码:

但是,您不能拥有dynamic类型的扩展方法。此外,您无法通过反射检查属性是否存在。欢迎来到 DLR。

问题

执行预检查以确保已将预期的查询/表单值传递给我的 Nancy 处理程序的最简单、最安全的方法是什么?

谢谢

0 投票
2 回答
661 浏览

mysql - AppHarbor:NancyFx 应用程序出现内部服务器错误

我最近使用以下 NuGet 包部署到http://domainshop.apphb.com/一个简单的 ASP.NET 应用程序:

该应用程序使用 MySQL。我已经激活了插件并使用在我的Web.config中编写的相同名称标记了实例。(我也将我的数据库部署到该实例)。

NancyFx 配置在system.webServer/handler而不是在system.web/httpHandlers.

我也设置system.web/customErrorsOff.

我缺少什么 get 500 - Internal Server Error

有趣的是静态文件被正确提供(http://domainshop.apphb.com/assets/style.css)。

问候,贾科莫