Câu hỏi Meteor: Gỡ lỗi ở phía máy chủ
Có ai biết một phương pháp tốt để gỡ lỗi mã phía máy chủ?
Tôi đã thử gỡ lỗi Node.js sau đó sử dụng trình kiểm tra nút nhưng nó không hiển thị bất kỳ mã nào của tôi.
Tôi kết thúc bằng cách sử dụng console.log nhưng điều này là rất kém hiệu quả.
Cập nhật: Tôi tìm thấy thủ tục sau đây hoạt động trên máy Linux của tôi:
Khi bạn chạy Meteor, nó sẽ sinh ra hai tiến trình
process1: / usr / lib / meteor / bin / node /usr/lib/meteor/app/meteor/meteor.js
process2: / usr / lib / meteor / bin / node /home/paul/codes/bbtest_code/bbtest02/.meteor/local/build/main.js --keepalive
Bạn cần gửi kill -s USR1 trên process2
Chạy trình kiểm tra nút và bạn có thể thấy mã máy chủ của mình
Trong lần thử đầu tiên, tôi sửa đổi dòng cuối cùng trên kịch bản khởi động meteor trong / usr / lib / meteor / bin / meteor
exec "$DEV_BUNDLE/bin/node" $NODE_DEBUG "$METEOR" "$@"
và chạy NODE_DEBUG=--debug meteor
trên dấu nhắc lệnh. Điều này chỉ đặt cờ --debug trên process1 vì vậy tôi chỉ thấy các tệp sao băng trên thanh tra nút và không thể tìm thấy mã của tôi.
Ai đó có thể kiểm tra điều này trên máy tính Windows và Mac không?
76
2018-06-14 14:11
gốc
Các câu trả lời:
Trong Meteor 0.5.4, điều này đã trở nên dễ dàng hơn nhiều:
Đầu tiên chạy các lệnh sau từ terminal:
npm install -g node-inspector
node-inspector &
export NODE_OPTIONS='--debug-brk'
meteor
Và sau đó mở http://localhost:8080
trong trình duyệt của bạn để xem bảng điều khiển của trình kiểm tra nút.
Cập nhật
Vì Meteor 1.0 bạn có thể chỉ cần gõ
meteor debug
mà về cơ bản là một phím tắt cho các lệnh trên, và sau đó khởi động thanh tra nút trong trình duyệt của bạn như đã đề cập.
Cập nhật
Trong Meteor 1.0.2, một giao diện điều khiển hoặc trình bao đã được thêm vào. Nó có thể có ích cho các biến đầu ra và chạy các lệnh trên máy chủ:
meteor shell
85
2018-02-22 10:20
Ứng dụng Meteor là ứng dụng Node.js. Khi chạy một ứng dụng Meteor với meteor [run]
lệnh, bạn có thể định cấu hình NODE_OPTIONS
biến môi trường để bắt đầu node
trong chế độ gỡ lỗi.
Ví dụ về NODE_OPTIONS
giá trị biến môi trường:
--debug
--debug=47977
- chỉ định một cổng
--debug-brk
- phá vỡ tuyên bố đầu tiên
--debug-brk=5858
- chỉ định một cổng và phá vỡ câu lệnh đầu tiên
nếu bạn export NODE_OPTIONS=--debug
, tất cả các meteor
lệnh chạy từ cùng một shell sẽ kế thừa biến môi trường. Ngoài ra, bạn có thể bật gỡ lỗi chỉ cho một lần chạy, với NODE_OPTIONS="--debug=47977" meteor
.
Để gỡ lỗi, hãy chạy node-inspector
trong một vỏ khác, sau đó đi đến http://localhost:8080/debug?port=<the port you specified in NODE_OPTIONS>
, bất kể cái gì node-inspector
bảo bạn chạy.
15
2018-02-14 11:07
Để bắt đầu node.js trong chế độ gỡ lỗi, tôi đã thực hiện theo cách này:
- mở /usr/lib/meteor/app/meteor/run.js
trước
nodeOptions.push(path.join(options.bundlePath, 'main.js'));
thêm vào
nodeOptions.push('--debug');
Dưới đây là các bước bổ sung thực tế để bạn đính kèm nhật thực gỡ lỗi:
- sử dụng '--debug-brk' thay vì '--debug' ở đây, vì tôi dễ dàng đính kèm node.js hơn bằng cách sử dụng nhật thực làm trình gỡ lỗi.
- thêm 'trình gỡ lỗi'; trong mã mà bạn muốn gỡ lỗi. (Tôi thích cách này theo cách riêng)
- chạy sao băng trong bảng điều khiển
- đính kèm vào node.js trong nhật thực (công cụ V8, đính kèm vào localhost: 5858)
- chạy, chờ trình gỡ lỗi được nhấn
khi bạn bắt đầu sao băng trong thư mục ứng dụng thiên thạch của mình, bạn sẽ thấy rằng "trình gỡ lỗi nghe trên cổng 5858"trong bảng điều khiển.
9
2017-07-29 13:15
Trên Meteor 1.0.3.1 (cập nhật câu trả lời của Sergey.Simonchik)
Bắt đầu máy chủ của bạn với meteor run --debug-port=<port-number>
Trình duyệt điểm đến http://localhost:6222/debug?port=<port-number>
Ở đâu <port-number>
là một cổng bạn chỉ định.
Trong mã của bạn, hãy thêm debugger;
nơi bạn muốn đặt điểm ngắt.
Tùy thuộc vào nơi debugger;
được gọi, nó sẽ phá vỡ trên cửa sổ trình duyệt máy khách hoặc máy chủ của bạn với thanh tra được mở.
9
2018-02-18 00:56
Tôi thích thiết lập các điểm ngắt thông qua GUI. Bằng cách này, tôi không phải nhớ xóa bất kỳ mã gỡ lỗi nào khỏi ứng dụng của mình.
Đây là cách tôi quản lý để làm điều đó phía máy chủ cho ứng dụng sao băng địa phương của tôi:
meteor debug
bắt đầu ứng dụng của bạn theo cách này.
Mở Chrome đến địa chỉ mà nó cung cấp cho bạn. Bạn CÓ THỂ cần phải cài đặt https://github.com/node-inspector/node-inspector (nó có thể đi kèm với Meteor bây giờ không?)
Bạn sẽ thấy một số mã sao băng nội bộ lạ (không phải mã ứng dụng bạn đã viết). Nhấn phát để chạy mã. Mã này đơn giản khởi động máy chủ của bạn để nghe các kết nối.
Chỉ sau khi bạn nhấn play, bạn sẽ thấy một thư mục mới trong cấu trúc thư mục trình gỡ rối của bạn được gọi "ứng dụng". Trong đó có các tệp dự án thiên thạch của bạn. Đặt điểm ngắt trong đó một dòng bạn muốn.
Mở địa chỉ cục bộ của ứng dụng của bạn. Điều này sẽ chạy mã phía máy chủ của bạn và bạn bạn sẽ có thể đạt điểm ngắt của bạn!
Lưu ý: bạn phải mở lại thanh tra và thực hiện lại quy trình này mỗi khi ứng dụng của bạn khởi động lại!
7
2017-11-02 16:11
Theo Meteor 1.0.2 có lẽ cách tốt nhất để gỡ lỗi phía máy chủ là trực tiếp thông qua trình shell tích hợp mới: với chạy máy chủ đang chạy meteor shell
. Thông tin thêm tại đây: https://www.meteor.com/blog/2014/12/19/meteor-102-meteor-shell
6
2018-01-29 05:19
Tôi không chắc tại sao nó không hoạt động cho bạn.
Tôi có thể sử dụng nó bằng cách làm theo các bước trên bàn điều khiển (Mac).
$ ps
$ kill -s USR1 *meteor_node_process_id*
$ node-inspector &
Các bước trên được đề cập đến https://github.com/dannycoates/node-inspector. Nó là để gắn nút kiểm tra để chạy quá trình nút.
5
2018-06-14 18:21