GVKun编程网logo

mongoError: Topology was destroyed

8

在这篇文章中,我们将带领您了解mongoError:Topologywasdestroyed的全貌,同时,我们还将为您介绍有关Adnroid:values/strings.xml报错:"error:A

在这篇文章中,我们将带领您了解mongoError: Topology was destroyed的全貌,同时,我们还将为您介绍有关Adnroid:values/strings.xml报错:" error: Apostrophe not preceded by ..."、An error has occurred. See error log for more details. java.lang.NullPointer、Android片段生命周期onStop,onDestroyView,onDestroy和onDetach、angular – ViewDestroyedError:尝试使用已销毁的视图:detectChanges的知识,以帮助您更好地理解这个主题。

本文目录一览:

mongoError: Topology was destroyed

mongoError: Topology was destroyed

我有一个在 node.js 中构建的 REST 服务,带有 Restify 和 Mongoose,还有一个 mongoDB,它的集合包含大约 30.000
个常规大小的文档。我的节点服务通过 pmx 和 pm2 运行。

昨天,突然,节点开始用消息“MongoError:拓扑被破坏”来解决错误,仅此而已。我不知道这是什么意思,什么可能触发了这个。谷歌搜索时也找不到太多东西。所以我想我会在这里问。

今天重新启动节点服务后,错误停止出现。我也有一个在生产中运行,这让我害怕,这可能在任何给定时间发生在运行在那里的设置的一个非常关键的部分......

我正在使用上述软件包的以下版本:

mongoose: 4.0.3
restify: 3.0.3
node: 0.10.25

答案1

小编典典

这似乎意味着您的节点服务器与 MongoDB 实例的连接在尝试写入时被中断。

查看生成该错误的 Mongo 源代码

Mongos.prototype.insert = function(ns, ops, options, callback) {    if(typeof options == ''function'') callback = options, options = {};    if(this.s.state == DESTROYED) return callback(new MongoError(f(''topology was destroyed'')));    // Topology is not connected, save the call in the provided store to be    // Executed at some point when the handler deems it''s reconnected    if(!this.isConnected() && this.s.disconnectHandler != null) {      callback = bindToCurrentDomain(callback);      return this.s.disconnectHandler.add(''insert'', ns, ops, options, callback);    }    executeWriteOperation(this.s, ''insert'', ns, ops, options, callback);}

这似乎与评论中引用的 Sails 问题无关,因为没有安装升级来引发崩溃或“修复”

Adnroid:values/strings.xml报错:

Adnroid:values/strings.xml报错:" error: Apostrophe not preceded by ..."

报错描述

如题的报错一般出现在非中文环境下,即字符串是非中文的,但是字符串中包含了单引号

'

这个字符,可是却没有使用转义字符将它转义,所以报错:"error: Apostrophe not preceded by \"(撇号没有被"\"转义)

解决办法

比如报错是这句话:

<!-- xiong_it 是只好猿 -->
<string name="description_xiong_it">xiong_it's a good programmers.</string>

将它改为:

<string name="description_xiong_it">xiong_it\'s a good programmers.</string>

即可解决报错

查看原文:http://blog.techxiong.cn/2015/10/strings_xml_error/

An error has occurred. See error log for more details. java.lang.NullPointer

An error has occurred. See error log for more details. java.lang.NullPointer

右键项目 -> run as -> maven clean

Android片段生命周期onStop,onDestroyView,onDestroy和onDetach

Android片段生命周期onStop,onDestroyView,onDestroy和onDetach

关于onStop的 Android文档谈论在某些情况下无法调用onDestroy,但我没有发现与片段相同的内容. onPause,onStop,onDestroyView,Destroy和onDetach总是被调用吗?只在暂停?

解决方法

对于Fragments来说也是一样的,所以只有onPause总是被调用.

当通过xml布局添加片段时,大多数这些回调被同时调用(在确切之前或之后)调用来自Activity的相应回调.

请注意,在较新版本的Android onStop上也始终会调用.

Android documentation talks about onStop an onDestroy Couldn’t be called in some circustances

只是说清楚:“一些喧嚣”意味着你的应用程序进程被用户或系统杀死(通常在内存不足或应用程序在后台运行较长时间).

angular – ViewDestroyedError:尝试使用已销毁的视图:detectChanges

angular – ViewDestroyedError:尝试使用已销毁的视图:detectChanges

我有以下组件创建一个mddialog

export class SideNavsComponent implements OnInit,AfterViewInit,OnDestroy {
  eventdispatcher: Eventdispatcher
  authEmailDialogRef: mddialogRef<AuthEmailDialogComponent>

  constructor(public dialog: mddialog,) {
    this.eventdispatcher = new Eventdispatcher()
  }

  signIn( event ): void {
    this.isSignedIn = event.checked
    this.openDialog()
  }

  openDialog() {
    this.authEmailDialogRef = this.dialog.open( AuthEmailDialogComponent,{
      height: '500px',width: '300px',disableClose: true
    } )
  }

  ngOnDestroy() {
  }

  ngAfterViewInit() {
  }

  ngOnInit() {
    event_dispatcher.on( 'CLOSE authEmailDialogRef',( target: Object ) => {
      this.authEmailDialogRef.close()
    } )
  }
}

下面的组件创建一个按钮,单击该按钮时,通过发送和在SideNavsComponent#ngOnInit方法中截获的事件来关闭上面创建的mddialog

export class AuthEmailDialogComponent implements OnInit {
eventdispatcher: Eventdispatcher = new Eventdispatcher()
}

cancel() {
      event_dispatcher.dispatch( 'CLOSE authEmailDialogRef','')
  }
}

mddialog是关闭的(),但总是会发生以下检测更改错误:

ERROR Error: ViewDestroyedError: Attempt to use a destroyed view: detectChanges
    at viewDestroyedError (core.es5.js:8636)
    at Object.debugUpdateDirectives [as updateDirectives] (core.es5.js:12781)
    at checkAndUpdateView (core.es5.js:12122)
    at callWithDebugContext (core.es5.js:13184)
    at Object.debugCheckAndUpdateView [as checkAndUpdateView] (core.es5.js:12724)
    at ViewRef_.detectChanges (core.es5.js:10196)
    at asterisk.component.ts:37
    at ZoneDelegate.webpackJsonp.1467.ZoneDelegate.invokeTask (zone.js:414)
    at Object.onInvokeTask (core.es5.js:4119)
    at ZoneDelegate.webpackJsonp.1467.ZoneDelegate.invokeTask (zone.js:413)
View_mddialogContainer_Host_0 @ mddialogContainer_Host.html:1
proxyClass @ compiler.es5.js:14091
DebugContext_.logError @ core.es5.js:13124
ErrorHandler.handleError @ core.es5.js:1144
next @ core.es5.js:4757
schedulerFn @ core.es5.js:3830
SafeSubscriber.__tryOrUnsub @ Subscriber.js:236
SafeSubscriber.next @ Subscriber.js:185
Subscriber._next @ Subscriber.js:125
Subscriber.next @ Subscriber.js:89
Subject.next @ Subject.js:55
EventEmitter.emit @ core.es5.js:3816
ngzone.triggerError @ core.es5.js:4188
onHandleError @ core.es5.js:4149
webpackJsonp.1467.ZoneDelegate.handleError @ zone.js:385
webpackJsonp.1467.Zone.runTask @ zone.js:184
ZoneTask.invoke @ zone.js:476
timer @ zone.js:1491
setInterval (async)
scheduleTask @ zone.js:1501
webpackJsonp.1467.ZoneDelegate.scheduleTask @ zone.js:400
onScheduleTask @ zone.js:290
webpackJsonp.1467.ZoneDelegate.scheduleTask @ zone.js:394
webpackJsonp.1467.Zone.scheduleTask @ zone.js:225
webpackJsonp.1467.Zone.scheduleMacroTask @ zone.js:248
(anonymous) @ zone.js:1527
proto.(anonymous function) @ zone.js:1402
AsteriskComponent @ asterisk.component.ts:37
createClass @ core.es5.js:10870
createDirectiveInstance @ core.es5.js:10701
createViewNodes @ core.es5.js:12064
callViewAction @ core.es5.js:12508
execComponentViewsAction @ core.es5.js:12417
createViewNodes @ core.es5.js:12091
createRootView @ core.es5.js:11969
callWithDebugContext @ core.es5.js:13184
debugCreateRootView @ core.es5.js:12644
ComponentFactory_.create @ core.es5.js:9890
ComponentFactoryBoundToModule.create @ core.es5.js:3427
ViewContainerRef_.createComponent @ core.es5.js:10092
PortalHostDirective.attachComponentPortal @ material.es5.js:2135
mddialogContainer.attachComponentPortal @ material.es5.js:19218
mddialog._attachDialogContent @ material.es5.js:19486
mddialog.open @ material.es5.js:19400
webpackJsonp.751.SideNavsComponent.openDialog @ side-navs.component.ts:39
webpackJsonp.751.SideNavsComponent.signIn @ side-navs.component.ts:35
(anonymous) @ SideNavsComponent.html:32
handleEvent @ core.es5.js:11892
callWithDebugContext @ core.es5.js:13184
debugHandleEvent @ core.es5.js:12772
dispatchEvent @ core.es5.js:8792
(anonymous) @ core.es5.js:10720
schedulerFn @ core.es5.js:3842
SafeSubscriber.__tryOrUnsub @ Subscriber.js:236
SafeSubscriber.next @ Subscriber.js:185
Subscriber._next @ Subscriber.js:125
Subscriber.next @ Subscriber.js:89
Subject.next @ Subject.js:55
EventEmitter.emit @ core.es5.js:3816
ToggleButton.toggle @ togglebutton.js:42
(anonymous) @ ToggleButton.html:4
handleEvent @ core.es5.js:11892
callWithDebugContext @ core.es5.js:13184
debugHandleEvent @ core.es5.js:12772
dispatchEvent @ core.es5.js:8792
(anonymous) @ core.es5.js:9384
(anonymous) @ platform-browser.es5.js:2683
webpackJsonp.1467.ZoneDelegate.invokeTask @ zone.js:414
onInvokeTask @ core.es5.js:4119
webpackJsonp.1467.ZoneDelegate.invokeTask @ zone.js:413
webpackJsonp.1467.Zone.runTask @ zone.js:181
ZoneTask.invoke @ zone.js:476
mddialogContainer_Host.html:1 ERROR CONTEXT DebugContext_ {view: {…},nodeIndex: 0,nodeDef: {…},elDef: {…},elView: {…}}

如何在销毁组件后阻止changeDetection触发;换句话说,如何在没有错误的情况下使这段代码正常工作?

注意:尝试了很多关于stackoverflow的建议,但都没有.

谢谢

解决方法

问题是对话框的关闭操作是从视图中删除项目,并且您的Eventdispatcher不是一个角度方法,因此它会在区域上下文之外触发并将其吓坏.
它是这样的:

>对话框存在于视图中,设置状态
>点击关闭
>开始你的活动
>您的活动被阅读(断章取义)
>从视图中删除(仍然不在上下文中)
>最终发现变化检测是为了寻找组件中的变化,OH SNAP组件是什么?

您可以使用其他方法与对话框进行通信,也可以切换到onPush() for change detection

我建议你改用afterClosed手柄:

this. authEmailDialogRef.afterClosed().subscribe(result => {
  console.log(`Dialog result: ${result}`); // Pizza!
});

我直接从文档中删除了该片段:HERE

今天关于mongoError: Topology was destroyed的分享就到这里,希望大家有所收获,若想了解更多关于Adnroid:values/strings.xml报错:" error: Apostrophe not preceded by ..."、An error has occurred. See error log for more details. java.lang.NullPointer、Android片段生命周期onStop,onDestroyView,onDestroy和onDetach、angular – ViewDestroyedError:尝试使用已销毁的视图:detectChanges等相关知识,可以在本站进行查询。

本文标签: