2017-08-11 21 views
7

Chúng tôi đã bắt đầu dự án của chúng tôi với mẫu dotnet cho Góc với kết xuất phía máy chủ (JavaScriptServices).
Đôi khi chúng ta có thời gian chờ trên hiển thị phía máy chủ của Angular4 và không có nhiều ngoại lệ để giúp chúng tôi chẩn đoán sự cố, đặc biệt nếu tất cả hoạt động tốt trên kết xuất phía máy khách.
Có cách nào truy cập nhật ký bảng điều khiển cho mã TS/JS khi chạy ở phía máy chủ không?
Hoặc một cách để nhận được cuộc gọi ngăn xếp lỗi? Vì chúng tôi chỉ nhận được một tin nhắn mà không có bất kỳ thông tin nào về việc nó xảy ra ở đâu.Chẩn đoán sự cố về kết xuất phía máy chủ Angular4 với Asp.net Core

Tôi cố gắng để đính kèm một debugger sử dụng these instructions nhưng tôi nhận được lỗi:

InvalidOperationException: The Node.js process failed to initialize: Warning: This is an experimental feature and could change at any time.

+0

nhìn cho Node.js debuging. Server side rendering sử dụng nút –

+0

Tôi đã thêm một câu hỏi tương tự trên JavaScriptServices github: https://github.com/aspnet/JavaScriptServices/issues/1304 – pauloya

+0

@pauloya, tôi tin rằng cái này được giải quyết cho bạn? Hoặc bạn vẫn cần một bàn tay? –

Trả lời

0

Một mặt ở đây bạn có hai bài báo tốt về chủ đề mà có lẽ bạn đã nhìn thấy:

Và mặt khác câu hỏi này có thể mang lại cho bạn ý tưởng về cách tiếp cận vấn đề, có thể bạn cần phải cấu hình một số Middleware trong đầu của bạn lên lớp như Webpack hoặc NodeServices:

Tôi hy vọng điều này tập trung đúng hướng.

Juan

+0

Cảm ơn các liên kết, tôi đã thử một lần nữa để đính kèm một trình gỡ lỗi mà không thành công, nhưng tôi nhận thấy một tùy chọn bổ sung có tên 'NodeInstanceOutputLogger', điều này có thể hữu ích – pauloya

+0

Tôi hy vọng như vậy, vui lòng cho chúng tôi biết. ;) – Juan

0

Từ liên kết mà bạn đăng là một cách để xử lý chẩn đoán, Chúng tôi sử dụng JSNLog cho các ứng dụng của chúng tôi.

Install JSNLog trong ứng dụng của bạn 2+ góc

Trên dòng lệnh, cài đặt gói NPM:

npm install jsnlog --save 

Gửi ngoại lệ JavaScript còn tự do đến máy chủ

Một uncaught ngoại lệ chỉ đơn giản là một ngoại lệ không bị mã của bạn bắt. Bạn sẽ muốn đăng nhập vào máy chủ.

Theo mặc định, Angular xử lý các trường hợp ngoại lệ không đọc bằng cách gửi thông báo lỗi đến bàn điều khiển (chi tiết). Để thay đổi điều này, bạn tạo một nhà cung cấp cho giao diện ErrorHandler (ví dụ).

  1. Mở mô-đun chính trong trình chỉnh sửa yêu thích của bạn. Đây thường là được gọi là app.module.ts.
  2. Phía trên định nghĩa mô-đun, thêm một xử lý ngoại lệ còn tự do mà sử dụng để đăng nhập JSNLog ngoại trừ hoạt Javascript để máy chủ:

    export class UncaughtExceptionHandler implements ErrorHandler { handleError(error: any) { 
         JL().fatalException('Uncaught Exception', error); 
        } } 
    
    // Existing module definition @NgModule({ 
        ... 
    
  3. Trình biên dịch nguyên cảo sẽ phàn nàn, bởi vì bạn chưa nhập JSNLog và ErrorHandler. Làm điều đó bây giờ:

    // ... nhập khẩu khác ...

    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 } 
        ], 
        ... 
    }) 
    

Để biết thêm thông tham khảo this

+0

@downvoter, giải thích cho tôi, giải pháp mà tôi cung cấp là giải pháp chung và xử lý tất cả các kiểu kịch bản chẩn đoán được xác minh phiên bản, tôi đã đề xuất giải pháp có thể giải quyết vấn đề hiện tại theo cách khác. – Webruster

Các vấn đề liên quan