Node.js映射在Slack窗口中的引号和括号之间返回结果

时间:2016-05-30 23:45:25

标签: javascript arrays node.js slack

我正在构建一个Slack应用程序,该应用程序有一个斜杠命令,用于使用pg-promise模块显示数据库中的数据,如下所示:

select: () =>
    rep.map(sql.select, null, row => {
        return 'User ' + row.username + ' is ' + row.status;
    }),

像这样,返回一个行数组,但结果总是如下:

["User username1 is status1", "User username2 is status2", ...]

我需要它显示在列表中,没有这些引号和括号。

User username1 is status1
User username2 is status2
...

我尝试使用正则表达式replace,但它不起作用。

3 个答案:

答案 0 :(得分:1)

我认为您的结果是一个JavaScript数组,因此您必须对其进行迭代才能按预期显示它。

您应该将select()结果分配给var,以便您可以重复var

var results = select();
for(var i=0; i < results.length; i++) {
     console.log(results[i]);
}

答案 1 :(得分:1)

如果您的意图只是显示结果字符串:

var os = require('os');

rep.map(sql.select, null, row => {
    return 'User ' + row.username + ' is ' + row.status;
})
    .then(data=> {
        console.log(data.join(os.EOL));
    });

Database.map使用新的返回值数组进行解析,与常规Array.map

相同

答案 2 :(得分:0)

试试这个:

var results = select();
var resultText = select.join('\n');
// console.log(resultText);

现在resultText将是一个字符串,每条消息用换行符分隔。