我一直在试图解决这个问题,但是在ASP.NET MVC上这个特定主题的信息似乎很少.我一直在谷歌搜索几天,并没有真正能够解决这个特定的问题.
我有一个3层项目.业务,DAL和UI/Web层.在DAL中是dbcontext,存储库和工作单元.在业务层中是包含所有接口和EF模型的域层.在业务层中,还有一个服务层,其中包含用于EF模型的DTO和用于访问存储库的通用存储库服务.这张照片应该有助于解释它.
我的问题是,我似乎无法弄清楚如何使用DTO从业务层传输数据.
我已经为DTO创建了服务类.我有一个ImageDTO和模型和图像锚点相同.我为每个DTO创建了一个服务类.所以我有一个图像服务和主播服务.这些服务继承存储库服务,并且目前实现自己的服务.但就我而言,那就是那个.由于这些服务具有通过IoC接收IUnitOfWork接口的构造函数,因此我几乎陷入困境.
如果我直接从UI引用服务,一切正常,但我无法理解如何使用DTO将数据从服务层传输到UI层,反之亦然.
我的服务层:
业务/服务/ DTO的
public class AnchorDto
{
public int Id { get; set; }
public int x1 { get; set; }
public int y1 { get; set; }
public int x2 { get; set; }
public int y2 { get; set; }
public string description { get; set; }
public int imageId { get; set; }
public int targetImageId { get; set; }
public AnchorDto(int Id, int x1, int y1, int x2, …Run Code Online (Sandbox Code Playgroud) 我正在学习使用sinon的节点模块mockery进行单元测试.
仅使用mockery和普通类我能够成功注入模拟.但是我想注入一个sinon存根而不是一个简单的类,但是我遇到了很多麻烦.
我试图嘲笑的课程:
function LdapAuth(options) {}
// The function that I want to mock.
LdapAuth.prototype.authenticate = function (username, password, callback) {}
Run Code Online (Sandbox Code Playgroud)
这是我目前在我的beforeEach()函数中使用的代码:
beforeEach(function() {
ldapAuthMock = sinon.stub(LdapAuth.prototype, "authenticate", function(username, password, callback) {});
mockery.registerMock('ldapauth-fork', ldapAuthMock);
mockery.enable();
});
afterEach(function () {
ldapAuthMock.restore();
mockery.disable();
});
Run Code Online (Sandbox Code Playgroud)
我试图以各种方式模拟/存根LdapAuth类但没有成功,上面的代码只是最新版本无效.
所以我只想知道如何使用sinon和mockery成功地模拟这个.
我在使用 apache 作为 Node JS/Express REST API 之上的反向代理时遇到问题。
当我向我代理的 URL 发出 PUT 请求时,apache 似乎会响应 405 Method not allowed 响应,而不是将请求转发到服务。我可以毫无问题地发出 GET 和 POST 请求。
如果我直接将请求发送到 API(http://ip-address:port),一切都会正常进行。另外,如果我从服务器本身向域发出请求,它就可以正常工作。
API 中禁用了 CORS。
<VirtualHost example.domain.local:80>
ProxyPreserveHost On
ProxyPass / http://192.168.1.40:9020/
ProxyPassReverse / http://192.168.1.40:9020/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我检查请求时,我可以看到 HTTP 允许标头设置为 GET、HEAD、POST、OPTIONS、TRACE。所以我尝试使用虚拟主机指令内的指令更改它。
<Proxy "*">
Order deny,allow
Allow from all
AllowMethods GET PUT DELETE POST
</Proxy>
Run Code Online (Sandbox Code Playgroud)
但没有任何变化。我还在 Proxy 指令中尝试了 LimitExcept 指令,但这没有什么区别。
我还检查了所有 httpd.conf,但没有看到任何可疑的配置。
我完全陷入困境,有人熟悉此类问题吗?
我有一个使用 sequelize 的 Express web api,我想用它进行端到端测试。我希望能够使用内存数据库进行端到端测试,以便我可以在任何我喜欢的机器上运行它。
我使用 mysql 数据库进行开发和生产,但是我正在考虑使用内存中的 sqlite 数据库进行测试,但我不确定将测试数据放入其中的最佳方法是什么。
周围有几个模块,如挤压夹具,但它们似乎都不能只用数据填充数据库,而无需围绕它编写代码来操作和插入它。
这里有没有人使用 sequelize 和 sqlite 进行集成测试,并找到了一种没有所有样板代码的好方法?
我正试图用它们的关联来保存续集模型.所有的协会都是一对一的.从数据库中检索具有关联的模型可以正常工作,但插入它们是另一回事,文档只会让我更加困惑.
这是我的插入方法:
models
.radcheck
.create(user, {
include: [{model: models.skraningar}, {model: models.radusergroup}, {model: models.radippool}]
})
.then(success, error);
Run Code Online (Sandbox Code Playgroud)
我已经在文档和这里的stackoverflow上看到了很多这样做的方法,到目前为止它们对我来说都没有意义.有人愿意为我解决问题吗?
我正在尝试将图像与其他字段一起上传.以下是来自这里和这里的例子
但是,似乎图像对象没有传递给控制器,我无法找到任何错误.
这是观点:
@model Project.Models.ContentNode
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm("Create", "News", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>News</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)
</div>
@*Image upload field*@
<div class="editor-field">
<input type="file" name="file" />
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Body)
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.Body)
@Html.ValidationMessageFor(model => model.Body)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to …Run Code Online (Sandbox Code Playgroud) 我正在设计一个系统,它将使用 RabbitMQ 在应用程序之间进行请求/响应。
我习惯于使用 REST API,并且从这个背景出发,我一直在思考如何在执行请求/响应时构造消息。
我需要构建它来处理几种情况:
我计划将有效负载 JSON 格式化。我正在考虑使用某种类似于 HTTP 的响应代码(也许使用相同的代码?)并将响应代码设置为消息上的属性/标头。
对于获取/查询,我的想法是在有效负载对象中拥有一个查询属性。
但这让我想到,我可能认为这太像 REST API,并且可能有一些更好、更成熟的方法来做到这一点。
在进行设置时,我一直在阅读《RabbitMQ in Action》一书,但我没有看到其中提到这一点。我的 google-fu 也让我失败了,没有提供任何结果。
有经验的人愿意分享他们如何构建信息吗?
express ×3
node.js ×3
asp.net-mvc ×2
sequelize.js ×2
apache ×1
chai ×1
dto ×1
image ×1
mocha.js ×1
mysql ×1
rabbitmq ×1
repository ×1
request ×1
response ×1
sinon ×1
sqlite ×1
unit-of-work ×1
unit-testing ×1