[英]How to debug and log own code on the server side of Meteor?
沒關系。 這不起作用的原因:我忘了meteor reset
所以debugger
沒有機會停止。 咄!
更多信息:我在Mason Chang的回答中使用了相關問題的方法,而不是kill -s USR1 [proc_id]
(我可以看到腳本,但無法在startup()函數中停止)。 另外,我正在使用隕石。
我試圖用節點檢查器調試Meteor服務器端的Meteor.startup(function())代碼(例如,在/server
),我已經閱讀了這個問題 ,並按照更改run.js
的答案,但不知何故,我自己的啟動功能腳本沒有出現在Chrome的腳本部分。
如何在此處查看我的代碼並設置斷點並停在這些點? 順便說一下,Meteor_debug()不會向stdout,stderr或node-inspector瀏覽器控制台輸出任何內容。 我也試過console.log()但沒有用。 如何在Meteor服務器端啟用日志記錄?
如果重要,我在auth
分支機構。
這里的代碼非常簡單(/server/bootstrap.js):
Meteor.startup(function () {
if (Logs.find().count() === 0) {
var data = [/*...some data...*/];
var timestamp = (new Date()).getTime();
Meteor._debug("timestamp: "+timestamp+", data.len: " + data.length);
debugger;
for (var i = 0; i < data.length; i++) {
data[i].timestamp = timestamp++;
var entry_id = Logs.insert(data[i]);
Meteor._debug("entry_id: "+ entry_id);
}
}
});
現在我知道如何做到這一點,我將回答我自己的問題,以便我們可以在這里保留這些信息(詳細信息):(這是基於Mason Chang對這個問題的回答。)
/usr/lib/meteor/app/meteor/run.js
(或由隕石在HOME//.meteorite/meteors/meteor/meteor/[LONG_HEX_CODE]/app/meteor
安裝的相應run.js
HOME//.meteorite/meteors/meteor/meteor/[LONG_HEX_CODE]/app/meteor
): [path.join(bundle_path, 'main.js'), '--keepalive']
['--debug-brk', path.join(bundle_path, 'main.js'), '--keepalive']
debugger
語句作為斷點; node-inspector &
在服務器終端中。 (google“node-inspector”來安裝它。) node-inspector
。) [PROJECT_DIR]/.meteor/local/build
main.js
[PROJECT_DIR]/.meteor/local/build
main.js
); debugger
語句的位置,您可能必須在客戶端瀏覽器窗口中執行一些觸發操作才能運行到debugger
斷點。 (請注意,如果等待太長時間按下RUN按鈕,則客戶端窗口可能會超時,您必須再次刷新。) 編輯 :對於在服務器端登錄,您可以使用Meteor._debug()和console.log(),它們將顯示在運行meteor
的終端中。 在客戶端,這些日志記錄語句將輸出到瀏覽器開發人員的控制台。 工具。
在MacOSX上,您可以使用Chrome:
NODE_OPTIONS="--debug-brk" meteor
在另一個終端
node-inspector --debug-port=5858 --web-port=12345
然后將Chrome連接到127.0.0.1:12345/debug?port=5858
否則使用Webstorm,只需創建一個Node.js遠程調試配置並運行它:
Name : Meteor Host : 127.0.0.1 Port 5858
請注意,一旦服務器啟動,您需要按下運行以便加載Meteor,然后暫停以便從服務器控制台進行調試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.