首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使所有的指令都在执行,Facebook模块也无法运行。

即使所有的指令都在执行,Facebook模块也无法运行。
EN

Stack Overflow用户
提问于 2016-02-11 00:37:19
回答 1查看 62关注 0票数 0

我编写了这个模块,用于通过HummingBird API搜索动画。模块加载良好,甚至帮助命令/help humming也返回适当的帮助消息。但我不能让它回应搜索查询

控制台只显示

An unhandled error occurred. Start as debug for details.

继续听下一条信息。我尝试过在调试模式下运行控制台(正如在Kassy中提到的那样),但是控制台显示了相同的消息。我试过用KPM安装模块,但结果是一样的。

这两个文件位于humming目录中的modules目录中。

humming.js

代码语言:javascript
复制
console.debug('line 10');
var request = require.safe('request');

/*
* Paths
*/
var HUMMINGBIRD_HOST = "hummingbird.me/api/v1";
var HUMMINGBIRD_SEARCH = "/search/anime/";

exports.match = function(text, commandPrefix) {
    console.debug('line 23');
    return text.startsWith(commandPrefix + 'humming');
};

/*
    Method that provides help strings for use with this module.
*/
exports.help = function(commandPrefix) {
    return [[commandPrefix + 'humming <query>','Searches Anime or Manga when you are too lazy to make a few clicks']];
};

/*
    The main entry point of the module. This will be called by Kassy whenever the match function
    above returns true.
*/
exports.run = function(api, event) {
        var query = event.body.substr(8);

        console.debug('line 40');

        search(query, function(error, response){
            // Callback calls the parser if no errors were registered
            if(error !== null){
                api.sendMessage(parse(response), event.thread_id);
            } else{
                console.debug(error);
            }
        });
};

function parse(query){
    // testing
    return JSON.stringify(query);
    // return 'parser reached';
}

/**
 * Retrieves information about an anime as a JSON object.
 *
 * query:       string to search
 * callback:    takes the error, and data
 */
function search(query, callback) {
    request.get({
        url: "https://" + HUMMINGBIRD_HOST + 
             HUMMINGBIRD_SEARCH + "?query=" + query,
        headers: {
                 "Content-Type": "application/x-www-form-urlencoded"
             }
    }, function(err, res, body) {

        console.debug('line 73');

        if(err) {
            if(res) {
                callback("Request error: " + err + ", " + res.statusCode, body);
            }
            else {
                callback("Connection error: not connected to internet", body);
            }
        }
        else {
            callback(null, body);
        }
    });
}

kassy.json

代码语言:javascript
复制
{
  "name": "humming",
  "version": 2.0,
  "startup": "humming.js"
}

您将注意到对调试器日志的一些调用,但这些调用从未显示在调试模式中,因此我不确定模块是否正在执行,或者我的调试是否有问题。这是我用来启用调试的启动命令。

node debug main.js facebook test

我还尝试将模块重命名为testmangaanime等,前提是系统中可能存在歧义,但没有任何改变。

我对request.get方法的实现不太确定,因为我对Javascript很陌生,并且遵循了这个GitHub项目的方法语法

您也可以在Github上找到我的模块文件,并了解更多关于Kassy 这里的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 23:28:34

我看得很快,无法复制未处理的错误,但是如果您将搜索回调中的代码块更改为

代码语言:javascript
复制
if(!error){
  api.sendMessage(response, event.thread_id);
} else{
  console.debug(error);
}

这将打印输出的原始响应。

如果再次发生异常,可以发送以下命令

/issue "title“描述全

这将将大量配置数据转储到K黑github上的一个问题上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35328771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档