小编Gro*_*fit的帖子

获取目录nodejs中的所有目录

我希望这会是一件简单的事情,但我找不到任何可以做到的事情.

我只想获取给定文件夹/目录中的所有文件夹/目录.

例如:

<MyFolder>
|- SomeFolder
|- SomeOtherFolder
|- SomeFile.txt
|- SomeOtherFile.txt
|- x-directory
Run Code Online (Sandbox Code Playgroud)

我希望得到一个数组:

["SomeFolder", "SomeOtherFolder", "x-directory"]
Run Code Online (Sandbox Code Playgroud)

或上面的路径,如果这是如何服务...

那么上面有什么已经存在的吗?

directory node.js

230
推荐指数
9
解决办法
14万
查看次数

为什么Typescript使用关键字"export"来使类和接口公开?

在尝试使用Typescript的时候,我意识到模块中的类(用作命名空间)不可用于其他类,除非我export在它们之前编写了关键字,例如:

module some.namespace.here
{
   export class SomeClass{..}
}
Run Code Online (Sandbox Code Playgroud)

所以现在我可以使用上面这样的代码:

var someVar = new some.namespace.here.SomeClass();
Run Code Online (Sandbox Code Playgroud)

但是我只是想知道为什么使用这个关键字而不是仅仅使用public在方法级别使用的关键字来表示方法或属性应该是外部可访问的.那么为什么不使用相同的机制来使类和接口等在外部可见?

这将产生如下结果的代码:

module some.namespace.here
{
   public class SomeClass{..}
}
Run Code Online (Sandbox Code Playgroud)

module public access-modifiers typescript

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

处理承诺链中的多个捕获

我仍然是相当新的承诺,目前正在使用蓝鸟,但我有一个场景,我不太确定如何最好地处理它.

例如,我在快递应用程序中有一个承诺链,如下所示:

repository.Query(getAccountByIdQuery)
        .catch(function(error){
            res.status(404).send({ error: "No account found with this Id" });
        })
        .then(convertDocumentToModel)
        .then(verifyOldPassword)
        .catch(function(error) {
            res.status(406).send({ OldPassword: error });
        })
        .then(changePassword)
        .then(function(){
            res.status(200).send();
        })
        .catch(function(error){
            console.log(error);
            res.status(500).send({ error: "Unable to change password" });
        });
Run Code Online (Sandbox Code Playgroud)

所以我追求的行为是:

  • 通过Id获取帐户
  • 如果此时存在拒绝,则弹出并返回错误
  • 如果没有错误,则将文档转换为模型
  • 使用数据库文档验证密码
  • 如果密码不匹配则弹出并返回不同的错误
  • 如果没有错误则更改密码
  • 然后返回成功
  • 如果出现其他任何问题,请返回500

所以,目前抓到似乎没有停止的链接,这是有道理的,所以我想知道如果有,我以某种方式迫使链停在基于错误的某一点的方式,或是否有更好的办法构造它以获得某种形式的分支行为,就像有一种情况一样if X do Y else Z.

任何帮助都会很棒.

javascript node.js promise bluebird

118
推荐指数
5
解决办法
7万
查看次数

Typescript - 带接口的类的默认参数

我有一个场景,我有一个接口,有一个像这样的方法:

interface SomeInterface
{
   SomeMethod(arg1: string, arg2: string, arg3: boolean);
}
Run Code Online (Sandbox Code Playgroud)

像这样的一个类:

class SomeImplementation implements SomeInterface
{
   public SomeMethod(arg1: string, arg2: string, arg3: boolean = true){...}
}
Run Code Online (Sandbox Code Playgroud)

现在问题是我似乎无法告诉接口第3个选项应该是可选的还是有一个默认值,就像我试图告诉接口有一个默认值我得到错误:

TS2174: Default arguments are not allowed in an overload parameter.

如果我从界面中省略默认值并像这样调用它:

var myObject = new SomeImplementation();
myObject.SomeMethod("foo", "bar");
Run Code Online (Sandbox Code Playgroud)

它抱怨参数与任何覆盖都不匹配.那么是否有一种方法可以为参数提供默认值并从接口继承,我不介意接口是否必须将值作为默认值,因为它始终是一个可选参数.

arguments interface default-value typescript

40
推荐指数
1
解决办法
3万
查看次数

MVC3 Razor使用Html.BeginForm问题

这可能是一件简单的事情,但我有以下代码:

<div>
    @using (Html.BeginForm()) {
        <p>
            ...
        </p>
    }
</div>
Run Code Online (Sandbox Code Playgroud)

而且它一直抱怨起始{括号必须后跟一个结尾}括号,但它在那里,所有做这类东西的代码示例都表明这是做到这一点的方式,所以我有点困惑为什么它没有不行......

razor asp.net-mvc-3

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

手动获取knockout以重新评估dependantObservable

我不确定这是否可行,但我有一个场景,我有一个验证系统,当一些东西通过一个依赖的observable变得有效/无效时通知我的验证系统.现在,当用户填写表单时,这非常有效,因为dependantObservable是从基础observables值更改驱动的.(即,如果Name属性发生更改,它将重新评估isValid依赖的observable,它将依次通知我绑定到验证系统的绑定).

现在我的问题是,如果用户根本没有触摸表单而只是直接提交,它将不会触发绑定,因为任何observable的基础值都没有改变,因此没有订阅者会知道任何验证更改发生.理想情况下,我不想通过每个observable并重新分配它的当前变量来推动验证评估,这反过来会触发验证状态的变化.所以我真正想做的就是让这个isValiddependantObservable 刷新,因为缺少一个更好的词.

无论哪种方式看起来都很讨厌,但我的选择似乎是:

1)对所有被验证的observable强制进行值更改(可怕)2)强制重新评估isValid dependantObservable以触发订阅者(不太可怕,但仍然不好)3)重写验证库以公开forceValidation()函数这将以某种方式触发所有要重新评估的内容,从而绕过底层observable触发验证管道的需要.

有任何想法吗?

validation ko.dependentobservable knockout.js

28
推荐指数
1
解决办法
2万
查看次数

IIS 7.5从响应中删除etag标头

我知道很多次都会问这个问题,但大多数问题都发生在2009-2010.

我很肯定一段时间我正在努力删除它们,但是我现在找不到任何方法将它们删除.

那么这个领域有没有进步?微软让IIS无法轻松配置这些标头似乎很疯狂.

目前已经尝试过:

  • 将空白etag标头添加到web.config
  • 将带引号的etag添加到web.config中
  • 直接通过IIS添加空白etag标头
  • 添加自定义模块,删除BeginResponse上的etag
  • 与上面相同但适用于EndResponse
  • 与上述两者相同,但不是删除etag,而是将其设为空

我听说有一个ISAPI过滤器可以删除它们,但是我无法在任何地方找到它,并且没有从头开始编写的经验,但可能最终成为唯一的方法.

这就是为什么我想删除所有内容的Etags的原因.我让客户端缓存所有内容(过期和最后修改),所以一旦从服务器获取静态文件,它就永远不需要再次查询服务器,直到它过期.就像使用Etags一样,您仍然需要向服务器请求每个文件,以确定标记是否仍然匹配.因此,使用客户端缓存只会请求您需要的内容.

我还有一个版本控制系统,所以当发生变化时,静态内容会被引用为my.js?12345而不是my.js?12344.无论如何,重点是我目前认为删除Etags将大大改善我当前项目的一个瓶颈.

iis etag caching iis-7.5 http-headers

27
推荐指数
2
解决办法
1万
查看次数

使用MongoDb处理迁移

为了给这个问题提供更多的上下文,我有一个Web应用程序(asp mvc),它基本上将CRUD操作包装到MongoDb实例,它在模型被验证并发送到存储之前执行验证和某些业务逻辑,检索等

现在我们遇到的一个问题是,在新版本中,模型已经改变,但现有数据没有,这里是一个例子:(它是c#特定的,但问题确实是语言不可知的)

public class Person
{
    public Guid Id {get; set;}
    public string Name {get; set;}
    public int Age {get;set;}
    public string BadgeNo {get;set;}
}

public class Person
{
    public Guid Id {get; set;}
    public string Name {get; set;}
    public int Age {get;set;}
    public string EmployeeNo {get; set;} // Still contains same data as BadgeNo just called something different
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,对象的结构发生了变化,但是在Mongo的土地上,它仍然传递出一个BadgeNo,而不是一个EmployeeNo.在SQL领域,我们通常会有一个迁移脚本,它作为构建脚本的一部分运行,它将更改架构并更新/插入/删除该增量的任何其他数据.

那么如何用Mongo 管理这类迁移呢?我是否还应该使用一个脚本来更新Mongo中的所有实例?还是有一些其他首选的做法来做这种事情.

关于这个问题的任何建议都会很棒

===编辑===

目前我似乎想要使用迁移选项而不是逐步淘汰方法,所以考虑到这一点,任何人都可以推荐任何帮助这一领域的工具,否则每次迁移(假设滚入,推出) )必须是一个具有所有逻辑的预编译程序集.我正在思考FluentMigrator的内容,但不是使用SQL而是使用Mongo.目前我的构建脚本使用Nant,我看过一些ruby工具,但不确定是否有任何.net等价物.

.net migration mongodb database-schema

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

没有NodeJS的Typescript命令行编译

我正在查看Typescript,并且对于如何通过命令行从ts文件构建js文件感到有点困惑.

它在文档中暗示你可以通过nodeJS轻松完成,如果我想要一个对nodeJS的依赖,这将是很好的...那么有没有办法通过命令行编译它而没有nodeJS或visual studio?

对于某些人来说这可能看起来很疯狂,但我会在最后输出构建脚本步骤以输出javascript,然后将其打包到我的版本中,因为我倾向于使用RubyMine进行大部分javascript开发并且不想要对构建服务器的nod​​eJS或Visual Studio的依赖.

javascript command-line build-script typescript

15
推荐指数
2
解决办法
5642
查看次数

类是否需要在Typescript中使用构造函数?

我看到的所有示例都显示了一个带有构造函数的类.可以不加入构造函数吗?很像C#如何自动使你成为默认的空构造函数?

typescript

14
推荐指数
3
解决办法
5725
查看次数