小编Tra*_*rks的帖子

Node.js Express中的HTTP GET请求

如何从node/express中发出HTTP请求?我需要连接到另一个服务.我希望该调用是异步的,并且回调包含远程服务器响应.

javascript httprequest node.js express

182
推荐指数
6
解决办法
42万
查看次数

Node.js + Express.js用户权限安全模型

我们有一个有两种类型用户的应用程序.根据用户的登录方式,我们希望他们可以访问应用程序的不同部分.

我们如何实施安全模型以防止用户看到他们无权访问的内容?

我们是否为每条路线实施安全部分?问题是我们在请求之间会有一些重复的逻辑.我们可以将其转换为辅助函数,但我们仍然需要记住调用它.

我们是否将安全性作为全局app.all()路由处理程序的一部分?问题在于我们必须检查每条路线并根据多种规则执行不同的逻辑.至少所有代码都在一个地方,但是......所有代码都在一个地方.

security node.js express

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

Karma,PhantomJS和es6 Promises

我正在编写一个使用新的es6 promises的JavaScript库.我可以在Firefox中测试库,因为已经定义了promises.但是,当我尝试使用Karma和PhantomJS测试我的代码时,我收到错误Can't find variable: Promise..我猜这是因为PhantomJS浏览器还不支持es6承诺.

如何配置Karma为承诺引入polyfill?

javascript phantomjs karma-runner karma-mocha es6-promise

37
推荐指数
3
解决办法
2万
查看次数

Scala - Booleans - &vs &&,| vs ||

我刚刚注意到Scala Boolean支持&&&.这两个运营商之间有区别吗?Scala文档对它们使用完全相同的描述,所以我不确定.

boolean scala operators

19
推荐指数
1
解决办法
6589
查看次数

像C#中的属性字典一样处理对象

我希望能够使用属性的名称作为键来访问像字典这样的对象中的属性值.我真的不在乎这些值是作为对象返回的,所以Dictionary<string, object>很好.这是预期用途:

object person = new { Name: "Bob", Age: 45 };
IDictionary<string, object> lookup = new PropertyDictionary(person);
string name = (string)person["Name"];
person["Age"] = (int)person["Age"] + 1; // potentially editable
Run Code Online (Sandbox Code Playgroud)

我本来要为此实现我自己的类,但后来我开始注意像DynamicObject这样的类实现了IDictionary接口,这让我觉得这已经在某个地方为我做了.

我想要的是类似于ASP.NET MVC使用的功能,允许使用匿名类型来设置HTML标记属性.我有很多使用字典作为数据源的类,但大多数时候我也应该能够传入对象.

因为这是一个通用,我想我会创建一个可重用的类,只使用IDictionary接口装饰一个对象.它将使我免于造成过载的爆炸.

c# dictionary properties dynamic

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

从NuGet包加载程序集

有时在我的PowerShell脚本中,我需要使用访问特定的DLL Add-Type -AssemblyName.但是,我需要的DLL并不总是在机器上或GAC中.例如,我可能想要一个使用Dapper查询数据库的快速脚本.在这些情况下,我一直在将DLL与ps1文件一起复制.我想知道这是不是常见/一个好主意,是否有现有的扩展会加载NuGet包,然后存储在全局或本地文件夹中并Add-Type -AssemblyName自动调用.

它分别与使用npmpip在Node.js或Python中很相似.

更新

我做了一些研究,并没有内置到旧版本的PowerShell.我试图从头开始编写一个使用的nuget.exe

&"$(Get-Location)/nuget.exe" install $packageName -Version $version -OutputDirectory "$(Get-Location)/packages" -NoCache -NoInteractive
Run Code Online (Sandbox Code Playgroud)

这将下载当前文件夹中"packages"文件夹下的给定包/版本及其任何依赖项.但是,它看起来像下载每个框架版本,没有明显的方法来告诉您哪个用于您的给定环境.

否则,您可以循环遍历结果并调用Add-Type:

Get-ChildItem .\packages\ -Recurse -Filter "*.dll" | % {
    try
    {
        Add-Type -Path $_.FullName
    }
    catch [System.Exception]
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用restore命令使用project.json文件来查看我是否可以控制框架版本而没有运气.这对我来说太过于苛刻了.

我将查看@ crownedjitter关于使用PowerShell 5的建议.

更新

使用@ crownedjitter的建议,我最终能够使用NuGet注册PackageManagement模块(请参阅下面的评论).使用以下命令,我能够重现Nuget.exe上面的命令正在执行的操作:

Install-Package Dapper -Destination packages
Run Code Online (Sandbox Code Playgroud)

显然,这要短得多.问题是它有同样的局限性; 它降低了包的每个框架版本.如果这包括.NET核心,它会带来很多.NET核心框架!似乎没有办法指定目标框架(又名.NET 4.5.1或更低版本).

Install-Package抓取所有.NET框架的依赖关系

我想知道是否有办法根据PowerShell的当前$PSVersionTable.CLRVersion字段确定从哪个NuGet包文件夹加载DLL .

powershell nuget-package powershell-4.0

14
推荐指数
2
解决办法
5203
查看次数

功能后的JavaScript空间

我知道JavaScript中的空格是无关紧要的,但我对风格很好奇.

定义如下函数时:

function Foo(a, b, c) {}
Run Code Online (Sandbox Code Playgroud)

我没有在函数名后面加一个空格.但是,如果我创建一个函数作为表达式:

Bar(function (a, b, c) {
    // do something
})
Run Code Online (Sandbox Code Playgroud)

要么

{
    Foo: function (a, b, c) {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现自己自然地打字了.我想这是因为我已经训练自己在函数关键字(或一般的关键字)之后立即键入一个空格.但是,根据上下文,空间看起来很尴尬.什么更有意义?大多数人做什么?

对不起,如果有人问过这个问题; 我没有看到它出现.

javascript whitespace coding-style function

13
推荐指数
2
解决办法
8468
查看次数

如何使用Express处理Node.js中的错误

我正在与项目合作伙伴合作.他在Node.js + Express中编写了很多代码,但我们遇到了架构问题.

为了解决这个问题,我的主要职责是找出构建Node.js + Express应用程序的最佳方法.我遇到了两个场景,处理错误,我想要一些建议.

首先,如何捕获顶级异常?我想要的最后一件事就是完全杀死节点进程的bug.我希望在遇到任何错误时继续为用户提供服务.

其次,一些错误通过回调传回(我们正在使用caolan/async).作为每个路由处理程序的一部分,我们要么呈现视图(GET),重定向到另一个路由(POST),我们要重定向到带有自定义错误消息的错误屏幕.我怎样才能确保在一个地方捕获这个逻辑?

error-handling node.js express

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

使用Python进行模拟时避免使用冗余@patch

来自静态编程语言背景,我想知道如何最好地在Python中进行模拟.我习惯于依赖注入.在测试中,模拟被创建并传递给被测系统(SUT).但是,看看Mock和Python的其他模拟框架,它似乎是类型/函数/等.模块中的模块在逐个测试的基础上被替换.

特别是,对于Mock,每个单元测试的顶部你会说出@patch('some.type.in.the.module.under.test')每种类型/功能/等.你想嘲笑 在测试的一生中,这些东西被嘲笑,然后它们被还原.不幸的是,在测试中,灯具非常接近相同,你最终会@patch一遍又一遍地重复你的es.

我想要一种方法来跨单元测试共享补丁集合.我还希望以可组合的方式对夹具进行调整.我可以使用上下文管理器而不是装饰器.

python patch mocking code-duplication

12
推荐指数
2
解决办法
1506
查看次数

C++ 11正则表达式按名称捕获组

我正在将基于boost的正则表达式转换为C++ 11正则表达式.我有一个名为的捕获组url:

\s*?=\s*?(("(?<url>.*?)")|('?<url>.*?)'))
Run Code Online (Sandbox Code Playgroud)

有了提升,如果你有一个,smatch你可以打电话match.str("url")来获取名称的捕获组.有了std::smatch,我只看到索引的子匹配.

如何使用std :: smatch类访问url捕获?

regex capture-group c++11

11
推荐指数
1
解决办法
9663
查看次数