小编Der*_*ill的帖子

在#ngrx示例中,SwitchMap与MergeMap相对应

下面是Ngrx示例中的代码:https://github.com/ngrx/example-app/blob/master/src/effects/book.ts我的问题是为什么在第一个@Effect中,它switchMap会在其他人使用时使用mergeMap.这是因为第一个@Effect正在处理网络,switchMap如果它正在运行,您可以取消之前的网络请求吗?

@Effect() search$ = this.updates$
    .whenAction(BookActions.SEARCH)
    .map<string>(toPayload)
    .filter(query => query !== '')
    .switchMap(query => this.googleBooks.searchBooks(query)
      .map(books => this.bookActions.searchComplete(books))
      .catch(() => Observable.of(this.bookActions.searchComplete([])))
    );


  @Effect() clearSearch$ = this.updates$
    .whenAction(BookActions.SEARCH)
    .map<string>(toPayload)
    .filter(query => query === '')
    .mapTo(this.bookActions.searchComplete([]));


  @Effect() addBookToCollection$ = this.updates$
    .whenAction(BookActions.ADD_TO_COLLECTION)
    .map<Book>(toPayload)
    .mergeMap(book => this.db.insert('books', [ book ])
      .mapTo(this.bookActions.addToCollectionSuccess(book))
      .catch(() => Observable.of(
        this.bookActions.addToCollectionFail(book)
      ))
    );


  @Effect() removeBookFromCollection$ = this.updates$
    .whenAction(BookActions.REMOVE_FROM_COLLECTION)
    .map<Book>(toPayload)
    .mergeMap(book => this.db.executeWrite('books', 'delete', [ book.id ])
      .mapTo(this.bookActions.removeFromCollectionSuccess(book))
      .catch(() => Observable.of( …
Run Code Online (Sandbox Code Playgroud)

rxjs ngrx

53
推荐指数
4
解决办法
2万
查看次数

取消暂存所有文件并放弃合并

我正在运行一个简单的合并并期待没有冲突,我跑了 git merge my_dev_branch

但是我遇到了一个看起来很混乱的合并冲突,让我觉得我的分支历史并不清楚.我没有解决冲突,而是放弃合并,回到原来的状态.

两个问题:

  1. 我是否正确地认为我可以通过git checkout HEAD <filename>在每个问题上运行每个文件来清理我的临时区域,这将等于放弃合并?
  2. 有没有办法可以在一个命令中执行此操作?

git

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

Heroku"psql:FATAL:剩余的连接插槽保留用于非复制超级用户连接"

我收到运行Heroku Postgres Basic的上述错误消息(根据此问题),并一直在尝试诊断问题.

其中一个建议是使用连接池,但似乎Rails内置了它.另一个建议是应用程序配置不正确并打开太多连接.

我的应用程序通过Active Record管理它的所有连接,我从Navicat直接连接到数据库(或者至少我以为我有).

我该怎么调试呢?

解析度

事实证明这是一个Heroku问题.来自Heroku支持:

我们在运行Basic数据库的服务器上检测到了一个问题.虽然我们查明并解决了这个问题,但我们建议您配置一个新的Basic数据库并使用PGBackups进行迁移,详情请参见 https://devcenter.heroku.com/articles/upgrade-heroku-postgres-with-pgbackups .这应该将您的数据库放在新服务器上.我为这次中断道歉 - 我们正在努力解决这个问题并防止它在未来发生.

activerecord ruby-on-rails heroku

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

如何在不同的NestJS模块中引用Mongoose模型

我是 NestJS 的新手。我确信这是一个简单的问题,但我就是找不到答案。

Nest 文档中,建议每个模型有一个模块。这涉及使用以下方法创建模型MongooseModule.forFeature

imports: [MongooseModule.forFeature([{ name: 'Cat', schema: CatSchema }])]
Run Code Online (Sandbox Code Playgroud)

文档说:

如果您还想在另一个模块中使用模型,请将 MongooseModule 添加到其他模块的exports部分CatsModule并导入CatsModule

我的问题是如何在新模块中引用模型。

我可以看到:

  1. 如果使用以下命令创建模型,将如何完成此操作mongoose.model('Name', MySchema)
  2. 需要什么出口
  3. 一个暗示这将使用 完成的问题import { Model } from 'mongoose'; @InjectModel('name') myModel: Model<MyInterface>),但感觉它重复了由 完成的模型创建MongooseModule.forFeature,因为它再次将 mongoose 模型与模式结合起来

任何帮助表示赞赏!

mongoose node.js nestjs

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

扩展服务类时如何处理NestJS依赖注入?

我正在尝试根据我提供的价值提供其他服务ConfigService

我遇到的问题是,在执行诸如findOne()(result is null)或countDocuments()(result is 0)之类的查询方法时,注入的猫鼬模型不会返回任何值。

我的服务类定义如下:

    export class BaseService {
      constructor(@InjectModel('Cat') public readonly catModel: Model<Cat>) {}

      createService(option: string) {
        if (option === 'OTHER') {
          return new OtherService(this.catModel);
        } else if (option === 'ANOTHER') {
          return new AnotherService(this.catModel);
        } else {
          return new BaseService(this.catModel);
        }
      }

      async findOne(id: string): Promise<Cat> {
        return await this.catModel.findOne({_id: id});
      }

      async count(): Promise<number> {
        return await this.catModel.countDocuments();
      }

      testClass() {
        console.log('BASE SERVICE CLASS USED');
      }
    } …
Run Code Online (Sandbox Code Playgroud)

extends dependency-injection subclass mongoose nestjs

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

Rspec:在Devise :: OmniauthCallbacksController子类中测试重定向

Devise和OmniAuth上Railscast之后,我实现了一个OmniauthCallbacksController < Devise::OmniauthCallbacksController包含一个处理OmniAuth回调的方法:

def all
  user = User.from_omniauth(request.env["omniauth.auth"])
  if user.persisted?
    sign_in_and_redirect user
  else
    session["devise.user_attributes"] = user.attributes
    redirect_to new_user_registration_url
  end
end
alias_method :facebook, :all
Run Code Online (Sandbox Code Playgroud)

routes.rb中:

devise_for :users, controllers: {omniauth_callbacks: "omniauth_callbacks", :sessions => "sessions" }
Run Code Online (Sandbox Code Playgroud)

我想自定义这个,所以我试图用RSpec测试它.问题是如何测试此方法和重定向?

如果在规范中我把user_omniauth_callback_path(:facebook)它不抱怨路线不存在,但似乎并没有实际调用该方法.

根据这个答案 "控制器测试使用四个HTTP动词(GET,POST,PUT,DELETE),无论你的控制器是否是RESTful." 我试过get user_...等但是在这里确实抱怨路线不存在.事实上,如果我这样做,rake routes则显示此路线没有HTTP动词:

user_omniauth_callback [BLANK] /users/auth/:action/callback(.:format) omniauth_callbacks#(?-mix:facebook)
Run Code Online (Sandbox Code Playgroud)

你能看到我错过的东西吗?

编辑

所以在这个问题之后,调用该方法的一种方法是:

controller.send(:all)
Run Code Online (Sandbox Code Playgroud)

然而,我遇到了提问者遇到的同样错误:

ActionController::RackDelegation#content_type delegated to @_response.content_type, but @_response is nil
Run Code Online (Sandbox Code Playgroud)

integration-testing rspec ruby-on-rails devise omniauth

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

在Rails中使用rake笔记和.html.erb文件

我开始使用Rails(3.2.3),并且最近发现了rake notes功能.

这适用于.rb文件,其注释如下:

     # TODO ...
Run Code Online (Sandbox Code Playgroud)

根据文档也适用于.erb文件.我试过在.html.erb视图文件中使用它,如下所示:

    <!-- TODO ... -->  
Run Code Online (Sandbox Code Playgroud)

但这不起作用.应该是?关于可能出错的任何想法?

感谢您的帮助!

ruby-on-rails

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

d3.js中的HTML工具提示清理

我在此示例后面的d3.js中实现了HTML工具提示,使用如下代码:

function onmouseover(d) {
    $("#tooltip").fadeOut(100,function () {
        // generate tooltip
        $("#tooltip").fadeIn(100);
    });
}

function onmouseout() {
    $("#tooltip").fadeOut(250);
}
Run Code Online (Sandbox Code Playgroud)

它有效,但表现出一种行为,即如果鼠标在多个节点上快速移动,工具提示可能仍然卡在页面上.上面例子显示了相同的行为(快乐的摆动!).

经过一些研究,似乎nvd3使用调度很好地解决了这个问题.但是我并不清楚调度是如何工作的,基于这个问题,我想在这种情况下可能会有一个更简单的方法.

更新

此问题仅由fadeIn和fadeOut引起.如果将它们设置为零则没有问题.所以问题实际上是否可以设置它以便在存在另一个鼠标悬停/输出事件时中断fadeIn/out.

解析度

问题是只有一个工具提示.在JQuery fadeOut中间,这无法响应事件.答案是有多个工具提示,因此当旧的工具提示逐渐消失时,它可以逐渐消失.这可以通过两种方式实现:

javascript jquery tooltip d3.js

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

点击浏览器"后退"按钮显示JSON而不是HTML(使用Rails&d3.js)

我正在使用像这样的d3.js JSON回调在Rails中生成一个图表:

视图

d3.json(document.URL, function(data){ 
    // generate chart
}
Run Code Online (Sandbox Code Playgroud)

调节器

def index
    respond_to do |format|
        format.html do
            # return the HTML
        end
        format.json do
            # return the JSON
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,当用户离开此图表,然后使用其浏览器上的"后退"按钮导航回到它时,它们将显示JSON而不是HTML.

你能建议我怎么解决这个问题吗?

javascript charts json ruby-on-rails d3.js

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

SQL GROUP BY仅在子查询中

我为不同品牌的不同日期的不同帐户的粉丝数量设置了一组数据点:

|brand|account|date|fans| 
|-----|-------|----|----|
|Ford |ford_uk|... |10  |
|Ford |ford_uk|... |11  |
|Ford |ford_us|... |20  | 
|Ford |ford_us|... |21  | 
|Jeep |jeep_uk|... |30  |
|Jeep |jeep_uk|... |31  |
|Jeep |jeep_us|... |40  |
|Jeep |jeep_us|... |41  |
Run Code Online (Sandbox Code Playgroud)

我试图按品牌返回粉丝总数,定义为每个品牌帐户的最大粉丝总和:

Ford: 32
Jeep: 72
Run Code Online (Sandbox Code Playgroud)

我尝试了这样的子查询:

(SELECT sum(account_fans)
  FROM
  (
    SELECT max(fans) AS account_fans
    GROUP BY account
  ) subquery_name
) AS total_fans
Run Code Online (Sandbox Code Playgroud)

问题是我得到:

错误:子查询使用外部查询中的未分组列帐户.

但我不想将外部查询分组.你能帮我吗?

sql postgresql postgresql-9.5

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