我们使用服务器端呈现(JavaScriptServices)的Angular dotnet模板开始了我们的项目
我们有时会在Angular4的服务器端渲染上获得超时,并且在例外上没有太多帮助我们诊断问题,特别是如果在客户端渲染时效果很好。
在服务器端运行时,有没有办法访问TS / JS代码的控制台日志?
或者获取错误的调用堆栈的方法?因为我们只收到一条消息而没有任何关于它发生的信息。
我尝试使用these instructions附加调试器,但收到错误:
InvalidOperationException:Node.js进程初始化失败: 警告:这是一项实验性功能,可能随时更改。
答案 0 :(得分:0)
一方面,你有两篇关于这个主题的好文章,你可能已经看过了:
另一方面,这个问题可能会为您提供如何解决问题的想法,也许您需要在启动类中配置一些中间件,如Webpack或NodeServices:
我希望这个重点放在正确的方向上。
涓
答案 1 :(得分:0)
您发布的链接是处理诊断的一种方式,我们将JSNLog
用于我们的应用程序。
在Angular 2+应用程序中安装JSNLog
在命令行中,安装NPM包:
npm install jsnlog --save
将未捕获的JavaScript例外发送到服务器
未捕获的异常只是一个异常,不会被您自己的代码捕获。您需要将这些记录到服务器。
默认情况下,Angular通过向控制台发送错误消息来处理未捕获的异常(详细信息)。要更改此设置,请为ErrorHandler接口创建提供程序(示例)。
在模块定义之上,添加一个未捕获的异常处理程序 使用JSNLog将JavaScript异常记录到服务器:
export class UncaughtExceptionHandler implements ErrorHandler { handleError(error: any) {
JL().fatalException('Uncaught Exception', error);
} }
// Existing module definition @NgModule({
...
TypeScript编译器会抱怨,因为您还没有导入 JSNLog和ErrorHandler。现在就这样做:
// ...其他进口......
import { JL } from 'jsnlog';
import { ErrorHandler } from '@angular/core';
Finally add your uncaught exception handler to the providers list, as a provider for the ErrorHandler interface:
@NgModule({
...
providers: [
...
{ provide: ErrorHandler, useClass: UncaughtExceptionHandler }
],
...
})
有关详细信息,请参阅this