2012-09-15 8 views
13

आपरिमोट डीबगर के रूप में क्रोम/वेबकिट के साथ चल रहे एक नोड.जेएस सर्वर को डीबग कैसे करते हैं?

node --debug server.js 

यह मैं एक पोर्ट संख्या xxxx देता है, चल अपने नोड है मैं जब क्रोम शुरू करने के लिए इस पोर्ट नंबर इस्तेमाल करना चाहिए?

क्या आप इसे Google\ Chrome --remote-debugging-port=xxxx से रिमोट डीबग करते हैं?

या 9 222 एक जादू बंदरगाह है, जैसा कि इसका उल्लेख है।

सही रास्ते पर I Am, Node.js server.js

उत्तर

10

नोड निरीक्षक/--debug अब नीचे देखें अद्यतन

#now deprecated/see below for update 

#install node-inspector 
npm install -g node-inspector 

#start node-inspector, listen on port 8080 (default) 
node-inspector --web-port=8080 

#in another terminal session/window: 
#while node-inspector is running, start your project in debug mode 
node --debug myproject.js 

अब निरीक्षक ने ले ली है आप myproject.js

हैं की एक पूरी डिबग सत्र के लिए http://your_server:8080 को ब्राउज़ कर सकते हैं फ़ायरवॉल या अन्य कारणों से रिमोट पोर्ट पर आपका रिमोट सर्वर पहुंच योग्य नहीं है, आप रिमोट सर्वर पर अपने स्थानीय मशीन पर पोर्ट 8080 से एसएस-सुरंग बना सकते हैं:

ssh -L 8080:localhost:8080 [email protected] -N 

और इस चालू रखने, जबकि आप अपने स्थानीय मशीन पर http://localhost:8080 का उपयोग अपने रिमोट NodeJS सत्र


अद्यतन अगस्त 2017

प्रारंभ नोड डिबग करने के लिए मोड निरीक्षण में:

node --inspect=0.0.0.0:9229 myproject.js 

या यदि आप डिबगर को मेरे प्रोजेक्ट की पहली पंक्ति में तोड़ना चाहते हैं ।js: बटन

chrome://inspect 

क्लिक करें 'कॉन्फ़िगर ...' और निम्नलिखित लक्ष्य जोड़ने:

node --inspect-brk=0.0.0.0:9229 myproject.js 

तो निम्नलिखित URL आपकी क्रोम ब्राउज़र में खुलेगा

ip-or-name-of-server-running-node:9229 

आप के बाद 'संपन्न' बटन पर क्लिक करें, आपको अपने रिमोट लक्ष्यों के तहत myproject.js देखना चाहिए। डिबगिंग शुरू करने के लिए निरीक्षण लिंक पर क्लिक करें। दुर्भाग्य से, निरीक्षण लिंक उबंटू के लिए क्रोम 58 पर काम नहीं करता है। यह विंडोज के लिए क्रोम 60 पर ठीक काम करता है।

+0

क्या आपको पता है कि क्या मुझे उल्का सर्वर चलाने पर स्पष्ट रूप से आपके उदाहरण में नोड-इंस्पेक्टर शुरू करना है? – Gobliins

+0

धन्यवाद! 'क्रोम: // निरीक्षण /' के साथ मेरे लिए ठीक काम करता है, हालांकि वीएस कोड (संलग्न लेकिन ब्रेकपॉइंट्स काम नहीं करते) और इंटेलिजे आईडीईए (प्रिंटर "आईपी से कनेक्ट हो रहा है ...) के साथ विफल रहता है और कुछ भी नहीं होता है। –

+0

हमेशा के लिए निरीक्षण के लिए और जब आप इसे सहेजते हैं तो पुनः लोड करें इस 'forever -w -c' नोड --inspect = 127.0.0.1: 3333 'file.js' – DarckBlezzer

9

उपयोग node-inspector में --remote-debugger साथ क्रोम शुरू करने के लिए दूर से Chrome से अपना नोड आवेदन है कि आप आपने रूप --debug विकल्प के साथ शुरू कर दिया है डिबग करने के लिए कोशिश कर रहा है दिखाया गया है।

0
  • $ आवारा ssh का उपयोग कर - एल 5858: 127.0.0.1: 5858

    to ssh connect to VM. also this comment would start a proxy server on port 5858; 
    
  • आप टेलनेट 127.0.0.1 5858 का उपयोग कर देखने के लिए स्थानीय प्रॉक्सी सर्वर शुरू कर दिया है या नहीं करता है, तो परीक्षण कर सकते हैं।

  • वीएम में, आप कमांड के साथ नोड शुरू कर सकते हैं

  • $ नोड --debug-brk app.js वेब तूफान में

  • सेट अप डिबग विन्यास।
  • जब आप वेब तूफान में डीबग शुरू करते हैं, तो वीएम में node.js सर्वर कुछ सेकंड में शुरू होगा।

पीएस: योनि फ़ाइल को छूने की कोई आवश्यकता नहीं है। संदर्भ: Connecting WebStorm to a remote node.js debugging session

+0

धन्यवाद, यह काम करता है। – arcseldon

4

नोड (> v6.3.0) और क्रोम के हाल के संस्करण अब आपको कुछ भी इंस्टॉल किए बिना क्रोम डेवलपर टूल्स को debug a Node.JS process पर उपयोग करने की अनुमति देते हैं। बस पारित --inspectnode रहे हैं:

$ node --inspect script.js 

Debugger listening on port 9229. 
Warning: This is an experimental feature and could change at any time. 
To start debugging, open the following URL in Chrome: 
    chrome-devtools://SOME-URL-HERE 

बस Chrome में उस URL खोलने, और आप के लिए तैयार हैं।

यदि आपको नोड शुरू होने के तुरंत बाद अपनी स्क्रिप्ट को रोकना है, तो आप उसी आदेश में --debug-brk भी पास कर सकते हैं।

संबंधित मुद्दे