小编Bre*_*ett的帖子

异步nodejs模块导出

我想知道配置模块导出的最佳方法是什么.以下示例中的"async.function"可能是FS或HTTP请求,为了示例而简化:

这是示例代码(asynmodule.js):

var foo = "bar"
async.function(function(response) {
  foo = "foobar";
  // module.exports = foo;  // having the export here breaks the app: foo is always undefined.
});

// having the export here results in working code, but without the variable being set.
module.exports = foo;
Run Code Online (Sandbox Code Playgroud)

如何在执行异步回调后才导出模块?

编辑 我的实际用例的快速说明:我正在编写一个模块来在fs.exists()回调中配置nconf(https://github.com/flatiron/nconf)(即它将解析配置文件和设置nconf).

asynchronous node.js

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

如何仅在多模块构建中在单个项目中执行测试?

我有一个多模块构建,并希望独立地为不同的子项目运行测试.

有没有办法做到这一点在SBT,例如,如果我的多项目构建具有corecommons项目,我想只运行testcommons项目中.

sbt

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

为maven-compiler-plugin设置默认的jdk

我刚刚在一个新的ubuntu系统上安装了maven,其中包括maven-compiler-plugin.我有一个以前构建正常的java项目,默认为javac源和目标为5(jdk 1.5).但是,该项目现在正尝试在新系统上使用jdk1.3进行编译.是否有一种简单的方法来配置系统使用> = jdk5?

以下是系统的一些配置细节:

$ java -version
java version "1.6.0_45"

$ dpkg -s maven
Package: maven
Status: install ok installed
Priority: optional
Section: java
Installed-Size: 1489
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Version: 3.0.4-2

$ dpkg -s libmaven-compiler-plugin-java
Package: libmaven-compiler-plugin-java
Status: install ok installed
Priority: optional
Section: java
Installed-Size: 75
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Source: maven-compiler-plugin
Version: 2.0.2-6
Run Code Online (Sandbox Code Playgroud)

我检查了maven-compiler-plugin-2.0.2.pom文件,plexus-compiler-javac.originalVersion等设置为1.5.3.

我知道我可以在每个项目的基础上通过在插件上下文中包含源/目标标签来设置它,但我想将maven-compiler配置为默认为jdk5或更高,而不必在大量的项目.

我怎样才能做到这一点?

java maven

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

Nodejs库/模块用于开发交互式CLI应用程序?

谷歌搜索和搜索stackoverflow,但我没有遇到任何事情.我想用节点开发一个交互式shell,并想知道最好的方法.是否有人可以推荐使用的图书馆?

我已经编写了一个库,现在需要一个CLI接口来与它进行交互,有两种方法:使用参数运行应用程序,或者通过交互式shell.例如

$ node myapp doSomething
App Result: I did something
$ node myapp cli
Entering interactive mode...
myapp>
myapp> doSomething
App Result: I did something
myapp>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

interactive command-line-interface node.js

11
推荐指数
2
解决办法
6700
查看次数

logback - 重新映射特定记录器的日志级别

我有一个logback配置,其中包含一个带有阈值过滤器的appender:

<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
  <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    <level>INFO</level>
  </filter>
  ...
</appender>
Run Code Online (Sandbox Code Playgroud)

这可确保只将info和更高(警告,错误)记录到syslog中.但是,我们使用的第三方库之一是在DEBUG中记录特定事件,我想将此事件记录到syslog中.我想到的第一种方法是尝试重新映射记录器中的日志级别,但我不确定这是否可行?就像是:

<logger name="akka.some.Thing" level="DEBUG" logAs="INFO">
  <appender-ref ref="SYSLOG" />
</logger>
Run Code Online (Sandbox Code Playgroud)

显然,"logAs"参数不存在,所以我不能这样做.将akka.some.Thing记录到SYSLOG appender同时为其他记录器留下过滤器的最佳方法是什么?

另一种方法是创建一个名为SYSLOG2的第二个appender,它没有适当的过滤器并设置特定的记录器来使用它,但是想知道是否有一种方法只用1个SYSLOG appender来配置logback ...

谢谢,

logback

8
推荐指数
1
解决办法
2559
查看次数

为什么发布插件项目因RuntimeException而失败:未指定用于发布的存储库?

我正在尝试将SBT插件发布到存储库.我不确定这是否有任何相关性,但我们的插件加载了sbt-twirl插件 - 谷歌搜索,看起来像publishConfiguration可能被覆盖:

new PublishConfiguration(None, "dotM2", arts, Seq(), level)
Run Code Online (Sandbox Code Playgroud)

当我运行发布任务时,工件被部署到repo,但sbt任务然后失败:

sbt (my-sbt-plugin)> publish
[info] Loading global plugins from ...
...
[info] Done packaging.
[info]  published sbt-my-sbt-plugin to http://my.repo.com/.../sbt-my-sbt-plugin-0.1-SNAPSHOT.jar
java.lang.RuntimeException: Repository for publishing is not specified. 
     .... stack trace here ....
[error] (my-sbt-plugin/*:publishConfiguration) Repository for publishing is not specified.
Run Code Online (Sandbox Code Playgroud)

导致错误的原因是什么,以及如何阻止发布失败?

**更新**这是 inspect publish

sbt (my-sbt-plugin)> inspect publish                                                                                                                   
[info] Task: Unit                                                                                                                                            
[info] Description:                                                                                                                                          
[info]  Publishes artifacts to a repository.                                                                                                                 
[info] Provided by:                                                                                                                                          
[info]  {file:/path/to/my-sbt-plugin/}my-sbt-plugin/*:publish                                                                    
[info] Defined at:                                                                                                                                           
[info]  (sbt.Classpaths) Defaults.scala:988 …
Run Code Online (Sandbox Code Playgroud)

sbt

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

使用Scalatest从打包的二进制文件执行PlaySpec测试

我有一个功能测试的Play项目.我能够用SBT执行测试.他们正在使用浏览器针对已部署的应用程序进行测试,即with OneServerPerSuite with OneBrowserPerSuite ...

我不想使用SBT /从源代码执行测试,而是编译和打包它们并从二进制文件运行.但是,如果我打包测试类(test: package在SBT中)并运行它们,则不执行任何测试,例如,如果我将所有依赖项复制到libs包括scala,ScalaTest等:

$ java -cp target/scala-2.10/myproject-acceptance_2.10-1.0-tests.jar:libs/* org.scalatest.tools.Runner -o -u results
Discovery starting.
Discovery completed in 20 milliseconds.
Run starting. Expected test count is: 0
DiscoverySuite:
Run completed in 57 milliseconds.
Total number of tests run: 0
Suites: completed 1, aborted 0
Tests: succeeded 0, failed 0, canceled 0, ignored 0, pending 0
Run Code Online (Sandbox Code Playgroud)

我无法进行任何测试.我已经试过-s,-m,-w,-q可切换斯卡拉测试运行.我最接近测试运行的是指定后缀(例如"MyWebappLogin")

$ ... Runner -o -u results -q Login …
Run Code Online (Sandbox Code Playgroud)

scalatest

7
推荐指数
0
解决办法
227
查看次数

具有 TTL 索引和数据恢复的过期 mongo 数据

我正忙着考虑在 MongoDB 中的集合上使用 TTL 索引,并想知道恢复时会产生什么影响。

例如,如果我将集合的 TTL 设置为 2 天:

db.logEvents.ensureIndex({"datestamp":1},{expireAfterSeconds:172800})
Run Code Online (Sandbox Code Playgroud)

如果我一周后使用 mongodump Restore 备份每日日志,logEvents 集合是否为空?对于 mongodump / mongorestore,我正在考虑在恢复之前手动修改/删除索引logEvents.metadata.json- 这可行吗?

如果从原始数据文件恢复怎么办 - 如何在 datadir 中使用恢复的原始文件启动 mongod 服务而不立即使数据过期?

indexing ttl mongodb

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

使用jq获取基于json中另一个属性的键列表

我正在尝试为JSON创建一个jq过滤器,类似于如何根据内部数组中的值使用jq过滤对象数组? - 但即使使用它作为基础似乎并没有给我我想要的结果.

这是我的例子json

[{"id":"0001","tags":["one","two"]},{"id":"0002", "tags":["two"]}]
Run Code Online (Sandbox Code Playgroud)

我想返回一个ID列表,其中标签包含"one"(不是部分字符串匹配,完整元素匹配).

我尝试了一些变化,但无法正确使用过滤器.

. - map(select(.resources[] | contains("one"))) | .[] .id
Run Code Online (Sandbox Code Playgroud)

返回 "0001","0002"

尝试... .resources[].one)) | ...按"一个"过滤并期望只获得时,也尝试了但总是得到完整列表0001

我在哪里过滤错了?(有大约30分钟的jq经验,所以请原谅我的无知,如果这是显而易见的:)

arrays json indexof jq

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

服务器切换的DNS TTL有多可靠?(DNS TTL覆盖)

DNS作为一种在服务器之间切换的机制有多可靠?对于低TTL,测试看起来很棒,但我想知道这对公共生产系统有多可靠?

我对这个策略的关注是我不确定DNS代理是否可以覆盖DNS记录缓存,一些提供商可能会使用它来节省流量.如果我们使用与其他系统的集成(例如移动网络服务)怎么办?

虽然我理解符合RFC的DNS是如何工作的,但我实际上并不确定投诉网络是如何运作的.(并且DNS rr对于分发也很有效,但这是专门用于切换的).

dns caching

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

Rails 迁移将默认非空属性添加到现有布尔字段

我有一个 Rails 模型,它有一个可以为空的非默认布尔字段,我正在尝试设置默认值。我找到了一篇关于避免 3-stat boolean 问题的博客文章,所以我试图满足这一点。这是我的迁移:

def change
  change_column :table, is_foo, :boolean, null: false, default: false
end
Run Code Online (Sandbox Code Playgroud)

由于数据库中存在空值,运行迁移失败。更新现有条目以允许架构更改的正确方法是什么?或者应该将非空控件添加到模型中:

validates :is_foo, presence: true
Run Code Online (Sandbox Code Playgroud)

不确定将其添加到迁移中是否是“正确”的方式:

 Table.update_all(:is_foo => false)
Run Code Online (Sandbox Code Playgroud)

同样,此字段是由迁移添加的,没有额外的非空/默认参数。添加列的迁移是否也需要这个,还是默认设置值?这是我运行的迁移:

add_column :table, is_foo, :boolean
Run Code Online (Sandbox Code Playgroud)

如果我添加,null: false, default: false了 add_column,是否所有的值都设置正确?

ruby-on-rails

0
推荐指数
2
解决办法
5019
查看次数