小编rto*_*res的帖子

如何在没有.d.ts的情况下使用typescript的外部非打字稿库?

我在我的.html文件中定义了这些:

<script type="text/javascript" src="bower_components/tree.js/tree.min.js"></script>
<script type="text/javascript" src="bower_components/q/q.js"></script>
<script type="text/javascript" src="test.js"></script>
Run Code Online (Sandbox Code Playgroud)

然后在test.js中:

 var myTree = Tree.tree({})
Run Code Online (Sandbox Code Playgroud)

但是打字稿错误地说:"找不到名字'树'"

我也尝试编译--module amd并放置import Tree = require("model/tree");在test.js文件的顶部,但它再次出错:Cannot find external module 'model/tree'.但显然它应该是一个有效的导入,请参见此处定义它:https://github.com/marmelab/tree的.js /斑点/主/ SRC/main.js

不是想写.d.ts文件为每一个外部JavaScript文件,我想使用,是严重打字稿什么要我做什么?

requirejs typescript

93
推荐指数
2
解决办法
6万
查看次数

如何通过Sequelize CLI将主键类型设置为UUID

我正在使用此命令通过Sequelize CLI创建数据库模型:

sequelize model:create --name User --attributes "firstname:string, lastname:string"
Run Code Online (Sandbox Code Playgroud)

这将创建相应的迁移脚本:

'use strict';
module.exports = {
  up: function(queryInterface, Sequelize) {
    return queryInterface.createTable('Users', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      firstname: {
        type: Sequelize.STRING
      },
      lastname: {
        type: Sequelize.STRING
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },
  down: function(queryInterface, Sequelize) {
    return queryInterface.dropTable('Users');
  }
};
Run Code Online (Sandbox Code Playgroud)

如图所示,主键设置为integer.

有没有办法默认使用CLI UUID

sequelize-cli

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

在方法签名中使用async关键字在Web Api端点中返回Task

如果我想通过返回一个Task对象来编写一个非阻塞的web api动作,我可以使用或不使用async关键字这样做:

使用异步

public async Task<HttpResponseMessage> Get()
{
    Func<HttpResponseMessage> slowCall = () =>
    {
        Thread.Sleep(2000);
        return Request.CreateResponse(HttpStatusCode.OK, "Hello world");
    };

    var task = Task<HttpResponseMessage>.Factory.StartNew(slowCall);
    return await task;
}
Run Code Online (Sandbox Code Playgroud)

不使用异步

public Task<HttpResponseMessage> Get()
{
    Func<HttpResponseMessage> slowCall = () =>
    {
        Thread.Sleep(2000);
        return Request.CreateResponse(HttpStatusCode.OK, "Hello world");
    };

    var task = Task<HttpResponseMessage>.Factory.StartNew(slowCall);
    return task;
}
Run Code Online (Sandbox Code Playgroud)

他们都正常工作.但是,我在编写返回a的web api操作时看到的每个例子(在线和书中)都Task使用了async关键字.当然,我明白这会给你更大的灵活性,因为它可以让你控制你想要"等待"的东西,什么不是.但假设您的功能可以有效地处理,

  • 使用一种方法与另一种方法有什么好处吗?
  • 我应该总是使用async关键字(如果是这样的话)?
  • 或者它无关紧要?

.net c# task async-await asp.net-web-api

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

无法发现Kibana 5的数据

我已经设置了一个测试Amazon Elasticsearch Service,它使用Elastic和Kibana 5.1.

我可以通过curl插入测试条目:

curl -XPOST "https://mytestservicedomain.amazonaws.com/testindex/testtype" -d "{\"foo\":\"bar\"}"
Run Code Online (Sandbox Code Playgroud)

并验证它是通过Kibana的Dev Tools插入的:

请求:

GET _search
{
   "query": {
       "match_all": {}
   }
}
Run Code Online (Sandbox Code Playgroud)

响应:

{
    "_index": "testindex",
    "_type": "testtype",
    "_id": "AVoQD4Kyv413fK4nN1sg",
    "_score": 1,
    "_source": {
      "foo": "bar"
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我去Kibana的菜单选项中发现时,我无法获得任何结果.我得到的只是一些错误:

  • Saved "field" parameter is now invalid. Please select a new field.
  • Discover: "field" is a required parameter

在此输入图像描述

我在Elastic的论坛上发现了一些帖子(帖子1,帖子2),这些帖子似乎表明Kibana/Elastic存在一些兼容性问题,但我只是想看看是否还有其他人遇到过它.

amazon-elasticsearch elasticsearch-5 kibana-5

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

如何配置 OpenLDAP 代理/缓存来缓存所有查询

好的,这是一个 OpenLDAP 新手问题,请耐心等待。我无法在网络上找到直接的答案,所以我们开始吧:

注意:最终目标是将 OpenLDAP 服务器设置为“单个”查询的代理/缓存,以获取主 LDAP 中的所有结果(如果您熟悉 .Net 的 DirectoryServices dll,则该应用程序只是在 LDAP 上进行 FindAll() 调用)。

我已经知道代理/缓存显示与主服务器相同的结果(即,它代理查询),但它似乎没有缓存。我这么说是因为两个原因:

  • 如果我对主 LDAP 中的条目进行更新,我会立即在代理中看到更新的值(使用指向代理 URL 的 LDAP 浏览器),甚至在 TTL 过期之前也是如此。
  • 如果我关闭主 LDAP 并向代理进行查询,则会出现连接异常。如果我没记错的话,我应该得到一个缓存的结果(再一次,TTL 没有过期)。

这是我用于代理/缓存的 OpenLDAP 配置文件(在 Windows 上,OpenLDAP v.2.4.23):


数据库 LDAP

uri "ldap://MyPC"

后缀“dc=local”

rootdn "dc=local"

覆盖缓存

代理缓存 bdb 1000 3 250 432000

目录 ./cache

索引对象类 eq

索引 cn eq,sub

代理缓存查询 100

proxyattrset 0 cn 证书撤销列表

代理模板(对象类=)0 600


有几点值得注意:

  • 我在主 LDAP 的条目中包含“所有”属性作为 proxyattrset 的一部分。我知道这对于缓存/服务预期查询是必要的。因为我想缓存 FindAll() 我认为这是这样做的方法。
  • 一致性检查间隔设置为 5 天(432000 秒)。我希望缓存能够提供缓存查询,即使主服务器已经关闭了那么长时间。另请注意,TTL 设置为 10 …

directoryservices ldap openldap

5
推荐指数
0
解决办法
3931
查看次数

在Jest中进行每次测试之前运行全局测试设置

我正在尝试在Jest测试套件中的每个测试之前执行测试设置功能。我知道我可以beforeEach在单个测试文件中完成此操作,但是我想在所有测试文件中全局执行此操作,不必显式修改每个单个文件。

我查看了jest的配置文件,发现有两个配置可能起作用:globalSetupsetupFiles,但是它们似乎只能运行一次(在测试运行的开始)。就像我说的那样,我需要it在测试文件中的“每个” 块之前运行它。

这可能吗?

unit-testing jestjs

5
推荐指数
3
解决办法
4390
查看次数

将笑话覆盖率阈值应用于聚合报告

问题

我有一个Node项目,有两次不同的jest运行,我通过不同的npm任务执行。它们都使用相同的jest.config.js,其中有一个声明coverageThreshold。我想将该阈值应用于运行的组合输出jest

如何将笑话覆盖率阈值应用于多个测试运行的组合输出?


背景

作为参考,请参阅下面描述的示例项目的代码

示例项目

为了说明该问题,假设该项目有一个如下所示的文件:

待测代码

# src/index.js

function run(cond) {
  if (cond) {
    return "foo";
  }
  return "bar";
}

module.exports = run;
Run Code Online (Sandbox Code Playgroud)

项目中还有2个测试:

测试1

# src/__tests__/index.group1.test.js

var run = require("../index");

describe("when cond is true", () => {
  it("should return 'foo'", () => {
    expect(run(true)).toEqual("foo");
  });
});
Run Code Online (Sandbox Code Playgroud)

测试2

# src/__tests__/index.group1.test.js

var run = require("../index");

describe("when cond is false", () => {
  it("should return 'bar'", () …
Run Code Online (Sandbox Code Playgroud)

code-coverage node.js jestjs

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