我正在构建一个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
,但它不起作用。
答案 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
将是一个字符串,每条消息用换行符分隔。