小编sen*_*ett的帖子

如何在moment.js中将日期格式化为ISO 8601?

这篇文档moment.ISO_8601作为格式化选项提供(来自2.7.0 - http://momentjs.com/docs/#/parsing/special-formats/),但这些都不起作用(甚至2.7.0):

var date = moment();
date.format(moment.ISO_8601); // error
moment.format(date, moment.ISO_8601); // error
Run Code Online (Sandbox Code Playgroud)

(http://jsfiddle.net/b3d6uy05/1/)

如何从moment.js获得ISO 8601?

javascript iso8601 date-formatting momentjs

177
推荐指数
7
解决办法
18万
查看次数

MySQL的事务性DDL工作流程

我有点惊讶地发现,DDL语句(alter table,create index等)隐含在MySQL提交当前事务.来自MS SQL Server,在本地事务中进行数据库更改(然后回滚)的能力是我工作流程的重要部分.对于持续集成,如果迁移因任何原因而被打扰,则使用回滚,这样至少我们不会使数据库处于半迁移状态.

在迁移和持续集成中使用MySQL时,人们如何解决这两个问题?

mysql ddl continuous-integration transactions rollback

16
推荐指数
1
解决办法
4262
查看次数

jQuery绑定事件监听器在另一个之前

使用prettyPhoto插件打开模态式内容容器,并尝试与Google Analytics的事件跟踪集成,以跟踪视频何时打开.

麻烦的是,当我

$('a.videoClickListener').click(function(event){
    console.log('here');
    _gaq.push(['_trackEvent', 'Product Page', 'Video Open', '<?php echo $product->getNameWithManufacturer(); ?>']);
});
Run Code Online (Sandbox Code Playgroud)

事件永远不会被触发,因为prettyPhoto会阻止事件继续(非常正确,否则如果单击超链接,页面将会改变).

prettyPhoto似乎没有提供"开放"回调函数,但如果它确实无法使用它,因为prettyPhoto监听器在布局中的某处设置(我们rel="prettyPhoto"每次都想使用prettyPhoto,并传递params通过URL,这是prettyPhoto推荐的做事方式).我还想将产品详细信息传递给Analytics,排除所有prettyPhoto开幕活动的全球视频开放听众.

如何在prettyPhoto监听器之前绑定我的监听器?如果结果我必须使用.unbind(),然后绑定我的监听器,然后重新绑定prettyPhoto,我如何取消绑定插件中指定的处理程序?

jquery

15
推荐指数
4
解决办法
1万
查看次数

创建复合外键约束

我正在尝试创建复合外键关系/约束.所有表都是空的.我有这张桌子:

CREATE TABLE [dbo].[ChemSampleValueTest](
    [SampleNumber] [int] NOT NULL,
    [ParameterID] [int] NOT NULL,
    [Value] [numeric](18, 6) NOT NULL,
    [Accuracy] [varchar](50) NULL,
    [ResultGroupID] [int] NOT NULL,
    [QAState] [nvarchar](32) NOT NULL,
     CONSTRAINT [PK_SampleValueTest] PRIMARY KEY CLUSTERED 
    (
        [SampleNumber] ASC,
        [ParameterID] ASC,
        [ResultGroupID] ASC
    )
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

和这个表:

CREATE TABLE [dbo].[ChemSampleValueEventLinkTest](
    [Event] [int] NOT NULL,
    [SampleNumber] [int] NOT NULL,
    [ResultGroupID] [int] NOT NULL,
    [ParameterID] [int] NOT NULL,
    [QAState] [nvarchar](32) NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我想像这样链接他们:

alter table [ChemSampleValueEventLinkTest] add 
    constraint FK_ChemSampleValueEvent_ChemSampleValue_test
    foreign key ([SampleNumber], …
Run Code Online (Sandbox Code Playgroud)

t-sql constraints foreign-keys composite-key

9
推荐指数
1
解决办法
9089
查看次数

验证使用Moq调用的泛型方法

我无法验证模拟IInterface.SomeMethod<T>(T arg)被称为使用Moq.Mock.Verify.

我可以验证方法是在"标准"接口上调用使用It.IsAny<IGenericInterface>()It.IsAny<ConcreteImplementationOfIGenericInterface>(),并且我没有麻烦验证使用泛型方法调用It.IsAny<ConcreteImplementationOfIGenericInterface>(),但我无法验证使用泛型方法调用It.IsAny<IGenericInterface>()- 它总是说该方法没有被调用,单元测试失败.

这是我的单元测试:

public void TestMethod1()
{
    var mockInterface = new Mock<IServiceInterface>();

    var classUnderTest = new ClassUnderTest(mockInterface.Object);

    classUnderTest.Run();

    // next three lines are fine and pass the unit tests
    mockInterface.Verify(serviceInterface => serviceInterface.NotGenericMethod(It.IsAny<ConcreteSpecificCommand>()), Times.Once());
    mockInterface.Verify(serviceInterface => serviceInterface.NotGenericMethod(It.IsAny<ISpecificCommand>()), Times.Once());
    mockInterface.Verify(serviceInterface => serviceInterface.GenericMethod(It.IsAny<ConcreteSpecificCommand>()), Times.Once());

    // this line breaks: "Expected invocation on the mock once, but was 0 times"
    mockInterface.Verify(serviceInterface => serviceInterface.GenericMethod(It.IsAny<ISpecificCommand>()), Times.Once());
}
Run Code Online (Sandbox Code Playgroud)

这是我的课程:

public class ClassUnderTest
{
    private …
Run Code Online (Sandbox Code Playgroud)

c# moq verify

9
推荐指数
1
解决办法
3971
查看次数

如何将我自己的证书颁发机构添加到我的 Android 设备?

我想从同一网络上的 Android 设备访问在本地计算机上运行的 https 站点。Service Worker 和推送通知意味着我需要使用 https。

我已经创建了自己的 CA + 密钥,为localhost和创建了证书192.168.178.23,并在 OSX 上安装了 CA。这一切都按预期工作 - 如果我将本地计算机上的浏览器指向 和 ,则一切都是绿色localhost192.168.178.23:3000。我遵循了这个指南

现在我想对我的 Android 设备执行相同的操作,以便我可以通过网络访问本地开发站点。

我戴上myCA.crt设备并点击它,但它显示“安装证书需要私钥”。当我浏览设置到 时,也会发生同样的情况Install a certificate -> CA certificate

我按照这篇文章将其转换为p12包含密钥和证书的文件。(我不知道为什么 Android 需要这里的密钥)。我的命令是openssl pkcs12 -export -in myCA.crt -inkey myCA.key -out test-combined.p12

现在,我将p12文件移动到我的设备并点击它。它提示输入密码,并识别出它有一个密钥,但它不会让我将证书作为证书颁发机构 - 只能作为“VPN 和应用程序用户证书”或“Wifi 证书”。当我尝试通过设置安装证书时,它允许我使用密码解锁文件,但随后显示“此文件不能用作 CA 证书”。

myCA.key

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,A868E9FC78768599

axC3F........................................................... …
Run Code Online (Sandbox Code Playgroud)

ssl android certificate-authority

8
推荐指数
0
解决办法
2052
查看次数

我为什么要使用UTC?

我们的应用程序目前使用当地时间而不是UTC.我知道使用UTC非常重要,但不能为我的生活记住原因.

假设DateTimes存储有偏移量,当将本地时间与UTC时间进行比较时,或者与具有不同时区的其他时间进行比较时,任何值得使用的库肯定会知道不同的时区并将两个对象变为可以是相比?

只要偏移量与DateTime一起传递(比如说它将使用对象而不是字符串),我不明白为什么它很重要.我为什么要处理2014-09-01T13:44:13+00:00而不是2014-09-01T14:44:13+01:00?实际上,存储为UTC会丢失偏移信息(声明时间的本地时间).

我在这里错过了什么?

上下文:我们有限制,一个一个样式的错误,我想'啊哈:把所有的东西都转移到UTC'然后意识到我只是通过代码转换一堆DateTime对象来使用UTC时区这让我感到很浪费时间.

language-agnostic datetime utc

7
推荐指数
2
解决办法
5893
查看次数

在解析格式错误的日期时,moment.js正在做一些奇怪的事情

如果我指定YYYY-MM-17为moment.js的日期,则表示它是有效日期:

var myMoment = moment('YYYY-MM-17', 'YYYY-MM-DD');

console.log(myMoment.isValid()); // -> true

console.log(myMoment.get('year')); // -> 2017
console.log(myMoment.get('month')); // -> 0
console.log(myMoment.get('day')); // -> 0
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/seu6x3k3/3/

我也在不同的浏览器上看到不同的结果.根据文件:

...我们首先检查字符串是否与已知的ISO 8601格式匹配,然后new Date(string)如果找不到已知格式则返回.

这不是我所看到的.使用相同格式本机指定日期时:

var date = new Date('YYYY-MM-17'); // -> NaN

console.log(date.getYear()); // -> NaN
console.log(date.getMonth()); // -> NaN
console.log(date.getDay()); // -> NaN
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/3p5x1qn3/

javascript date momentjs

7
推荐指数
1
解决办法
158
查看次数

单元测试有状态RequireJS模块的模式

假设我有一个RequireJS模块,并且我的应用程序中只有一个实例(假设它执行异步操作并将回调传递给它):

// modules/myModule
define(function(){
    var module = function(){
        var self = this;
        self.runSomething(){
            console.log("hello world");
        };
    };

    return new module();
});
Run Code Online (Sandbox Code Playgroud)

我想单元测试这个模块的一个实例,我发现自己用这种方式构建模块:

// modules/myModule
define(function(){
    return function(){
        var self = this;
        self.runRouting(){
            console.log("hello world");
        };
    };
});

// modules/myModuleInstance
define(["modules/myModule"], function(myModule){
    return new myModule();
});
Run Code Online (Sandbox Code Playgroud)

这为我提供了一些没有附加状态的东西,然后我可以从我的单元测试中找到它,所以在我的单元测试中,我从不参考modules/myModuleInstance,只是modules/myModule每次为每次测试构建的.该应用程序然后引用modules/myModuleInstance.

这感觉就像一个反模式.我讨厌在那里有额外的"模块实例"部分.我知道单元测试中的设置和拆卸方法,并且可以通过这种方式维护实例,但是在尝试对大量单例进行单元测试时,目睹了C#会发生什么,在单元测试之间摆弄状态是我真正想要避免的,特别是用动态语言.

在这种情况下人们通常会做什么?

javascript unit-testing design-patterns requirejs

6
推荐指数
1
解决办法
896
查看次数

从ASP.NET MVC Web API返回400而不是404

我使用VS2012创建了ASP.NET MVC Web API项目的hello世界:

public class ValuesController : ApiController
{
    // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }
}
Run Code Online (Sandbox Code Playgroud)

向该控制器发出一个get请求会返回一些状态为200的数据XML.到目前为止一切都很好.

当我删除该方法时,如下所示:

public class ValuesController : ApiController
{
    // GET api/values
    //public IEnumerable<string> Get()
    //{
    //    return new string[] { "value1", "value2" };
    //}

    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我找不到404.我想要的是400坏请求,因为必须提供ID.我怎样才能做到这一点?

asp.net-mvc-4 asp.net-web-api

5
推荐指数
1
解决办法
5810
查看次数