2012-06-12 8 views
12

मैं मौजूदा हबॉट स्क्रिप्ट को डीबग करने की कोशिश कर रहा हूं और भविष्य में अपना खुद का लिखना चाहता हूं, और मुझे इसे डीबग करने या कम से कम मूल्यों को मुद्रित करने का एक आसान तरीका चाहिए (लेकिन चैनल के लिए नहीं) । ऐसा मैं किस प्रकार करूं?एक हबोट स्क्रिप्ट में डिबगिंग/प्रिंटिंग

बोनस अंक यदि यह कुछ इंटरैक्टिव स्थानीय मोड में नोड का उपयोग करके किया जा सकता है। मुझे सच में यकीन नहीं है कि कहां से शुरू करना है।

सभी स्क्रिप्ट्स हबोट उपयोग कॉफ़ीस्क्रिप्ट में लिखे गए हैं।

पीएस मैं हिपचैट के साथ हबोट का उपयोग कर रहा हूं।

उत्तर

8

मैंने अपने आप को जवाब खोज लिया है: console.log MSG ए। कॉफ़ी कॉफ़ीस्क्रिप्ट स्रोत में बिल्कुल वही है जो मुझे चाहिए।

+7

तुम भी '-एक ' विकल्प जो आप परीक्षण और डिबग लिपियों स्थानीय स्तर पर करने देगा बाहर छोड़ कर आरईपीएल चला सकते हैं। –

+0

@Artem आप किस हबोट को निकालकर और सब कुछ पाने के लिए स्थानीय स्तर पर चल रहे हैं? मैं यहां एक स्क्रिप्ट डीबग करने की भी तलाश कर रहा हूं :) – mecampbellsoup

10

मुझे नहीं पता कि यह मदद करता है लेकिन मुझे वस्तुओं का निरीक्षण करने का कोई तरीका मिला।

Util = require "util" 

module.exports = (robot) -> 
    robot.hear /hi robot/i, (msg) -> 
    user = robot.brain.usersForFuzzyName(msg.message.user.name) 
    msg.send "#{Util.inspect(user)}" 

यह अनुमति वस्तु के सभी तत्वों को देखने के लिए तो मैं यह पता लगाने सकता है मैं गलत क्या कर रहा था हो सकता है ...

+0

@radixhound ऐसा करता है कि 'bin.s hubot' जैसी चीज़ों के माध्यम से हबॉट को लात मारने के बाद' msgstr "कंसोल पर प्रिंट करें। अपने हबोट को आरंभ करने के लिए बस इससे पहले क्या कदम है? धन्यवाद! – mecampbellsoup

+0

हां, मैंने 'बिन/हबोट' के माध्यम से हबोट को लात मार दिया और मैंने आउटपुट को एक प्रतिक्रिया के अंदर रखा। मूल रूप से कमांड लाइन से हबोट शुरू करें और 'हाय रोबोट' कहें और यह जानकारी आउटपुट करता है। 'मुझे उपयोगकर्ताओं को दिखाएं' जैसे कुछ करने के लिए शायद बेहतर है। – radixhound

3

आप

robot.logger.info "your log message here" 

उपयोग कर सकते हैं यही कारण है कि यह सिर्फ प्रवेश करेंगे जैसे अन्य हबोट संदेश लॉग हो जाते हैं।

0

इस (कॉफ़ीस्क्रिप्ट) स्निपेट को कहीं भी मिला जो सभी त्रुटियों को लॉग करता है, विकास में बॉट जोड़ने के लिए काफी उपयोगी है।

robot.error (err, res) -> robot.logger.error "#{err}\n#{err.stack}" if res? res.reply "#{err}\n#{err.stack}"