成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

你會 Nodejs (多進(jìn)程)調(diào)試嘛

zhaochunqi / 1275人閱讀

前言

我總是調(diào)侃好多 nodejs 開發(fā)都不會多進(jìn)程調(diào)試,這其中就包括了我。
直到有一天,我不得不使用它來解決一些問題,作為一個(gè)懶人,我喜歡用簡單的辦法,所以這可能是最簡單的 Nodejs 調(diào)試方法,話不多說進(jìn)入正題

單進(jìn)程調(diào)試
console.log()

單進(jìn)程的調(diào)試,如果場景不復(fù)雜、比較好預(yù)判,可以直接打印到控制臺

// 添加參數(shù) --debug-brk 可以在第一行斷點(diǎn)
// node --inspect --debug-brk index.js
node --inspect index.js

nodejs 在 v6.3.0 版本之后支持了 node --inspect index.js 這種調(diào)試方式,可以打開一個(gè) chrome 頁面,用前端熟悉的方式進(jìn)行斷點(diǎn)調(diào)試。

Debugger listening on port 5863.
Warning: This is an experimental feature and could change at any time.
To start debugging, open the following URL in Chrome:
    chrome-devtools://devtools/remote/serve_file/@60cd6e859b9f557d2312f5bf532f6aec5f284980/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:5863/7fd57fb3-86fa-4519-8621-39147428b15d

像這樣,會有一個(gè) chrome-devtools 協(xié)議的地址,復(fù)制到 chrome 中就可以開啟調(diào)試

多進(jìn)程調(diào)試

假設(shè)我有一個(gè)這樣的多進(jìn)程 Nodejs 服務(wù)

if (cluster.isMaster) {
  for (var i = 0; i < cpuCount; i++) {
    cluster.fork();
  }
  const agentWorker = cluster.fork({ "AGENT_WORKER": true });
}

注意對比,通過cluster.setupMaster可以設(shè)置 master 進(jìn)程 fork work 進(jìn)程時(shí)的參數(shù)配置

if (cluster.isMaster) {
  if (debug) {
    // 在 fork 進(jìn)程之前添加調(diào)試參數(shù),--debug-brk 指代碼在執(zhí)行第一行時(shí)進(jìn)行斷點(diǎn)
    cluster.setupMaster({
      execArgv: ["--inspect", "--debug-brk"]
    });
  }
  for (var i = 0; i < cpuCount; i++) {
    cluster.fork();
  }
  const agentWorker = cluster.fork({ "AGENT_WORKER": true });
}

像單進(jìn)程一樣,不過每個(gè)進(jìn)程都會有一個(gè)調(diào)試 url,但我們依然可以直接在 chrome 里面進(jìn)行多進(jìn)程調(diào)試

如果你還不會,快去試試吧

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/87192.html

相關(guān)文章

  • 大話-node真的是單線程嗎?

    摘要:當(dāng)你使用的活動監(jiān)視器你會發(fā)現(xiàn),實(shí)際的進(jìn)程數(shù)為菜鳥是因?yàn)榫€程池的原因嗎老鳥不錯(cuò)嘛,還知道線程池呢但非也非也。菜鳥竟然不是線程池老鳥你忽視了集成了引擎。啟動后會創(chuàng)建實(shí)例,而實(shí)例是多線程的。 老鳥:伸著懶腰,看著窗外明媚的陽光,喝一口清茶,心情大美。一天的好心情莫過于此。老鳥:菜鳥,你這消失了大半個(gè)月,忙什么呢?菜鳥:聽說node最近很火,這不趁著年輕,多儲存點(diǎn)知識儲備呢!老鳥:那你說說你對...

    Yang_River 評論0 收藏0
  • 十分鐘搭建centos+nodejs+nestjs+caddy+pm2線上環(huán)境

    摘要:安裝及線上環(huán)境配置安裝官方安裝說明地址執(zhí)行命令至此,安裝完成版本查看安裝官方文檔地址首次安裝執(zhí)行命令以后創(chuàng)建項(xiàng)目只需在你需要的路徑下執(zhí)行開發(fā)測試環(huán)境下直接執(zhí)行以下命令啟動項(xiàng)目后面加上可以在修改現(xiàn)有文件后自動進(jìn)行重啟瀏覽器輸入即可 centos+node.js+nest.js+caddy+pm2安裝及線上環(huán)境配置 node.js安裝 官方安裝說明地址 https://github.com...

    xiaoqibTn 評論0 收藏0
  • 使用Chrome DevTools調(diào)試Nodejs

    摘要:第三步在打開在地址欄輸入并回車后就會看到以下頁面了點(diǎn)擊上面的鏈接跳轉(zhuǎn)到調(diào)試頁面你會看到一個(gè)調(diào)試當(dāng)前代碼的彈窗。更好的體驗(yàn)是,當(dāng)你的重啟后,這個(gè)調(diào)試窗口會重新連接。從上圖,你會看到一堆經(jīng)常用到的調(diào)試工具。 事實(shí)上chrome devtools在2016年5月就已經(jīng)支持Nodejs的調(diào)試了,具體可以觀看英文原版Google I/O上的視頻 第一步:下載和安裝最新版本的Nodejs(要求6....

    shadajin 評論0 收藏0
  • 淺談前端中的錯(cuò)誤處理

    摘要:如何避免內(nèi)存泄露內(nèi)存泄漏很常見,特別是前端去寫后端程序,閉包運(yùn)用不當(dāng),循環(huán)引用等都會導(dǎo)致內(nèi)存泄漏。有的時(shí)候很難避免一些可能產(chǎn)生內(nèi)存泄漏的問題,可以利用每次調(diào)用都在一個(gè)沙箱環(huán)境下調(diào)用,用完回收調(diào)。 某一天用戶反饋打開的頁面白屏幕,怎么定位到產(chǎn)生錯(cuò)誤的原因呢?日常某次發(fā)布怎么確定發(fā)布會沒有引入bug呢?此時(shí)捕獲到代碼運(yùn)行的bug并上報(bào)是多么的重要。 既然捕獲錯(cuò)誤并上報(bào)是日常開發(fā)中不可缺少的...

    ShowerSun 評論0 收藏0
  • 淺談前端中的錯(cuò)誤處理

    摘要:如何避免內(nèi)存泄露內(nèi)存泄漏很常見,特別是前端去寫后端程序,閉包運(yùn)用不當(dāng),循環(huán)引用等都會導(dǎo)致內(nèi)存泄漏。有的時(shí)候很難避免一些可能產(chǎn)生內(nèi)存泄漏的問題,可以利用每次調(diào)用都在一個(gè)沙箱環(huán)境下調(diào)用,用完回收調(diào)。 某一天用戶反饋打開的頁面白屏幕,怎么定位到產(chǎn)生錯(cuò)誤的原因呢?日常某次發(fā)布怎么確定發(fā)布會沒有引入bug呢?此時(shí)捕獲到代碼運(yùn)行的bug并上報(bào)是多么的重要。 既然捕獲錯(cuò)誤并上報(bào)是日常開發(fā)中不可缺少的...

    BothEyes1993 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<