gpt4 book ai didi

javascript - 如何以字符串形式返回 promise 的结果?

转载 作者:太空宇宙 更新时间:2023-11-04 03:19:39 24 4
gpt4 key购买 nike

我正在尝试为 Discord 平台创建一个机器人,它将搜索 SQL 数据库并将对象返回到聊天中供人们查看。

SQL 使用 Promise,但我无法成功地将它返回的 Promise 转换为我可以返回到聊天的内容(字符串或数组)。

此代码查询数据库:

function spell(name) {
var spellData = sql.get("SELECT * FROM spells WHERE LOWER(name) = '"+ name.toLowerCase() + "'");
spellData.then( value => {
console.log(spellData)
return spellData;
});

}

表格:

CREATE TABLE spells (
`name` VARCHAR(25),
`casting_time` VARCHAR(95),
`components` VARCHAR(215),
`description` VARCHAR(3307),
`duration` VARCHAR(52),
`level` INT,
`range` VARCHAR(28),
`school` VARCHAR(13)
);

我正在使用node.js、sqlite 和discord.js。

最佳答案

如果您想将 Promise 对象返回给调用者,只需执行以下操作:

function spell(name) {
return sql.get("SELECT * FROM spells WHERE LOWER(name) = '" + name.toLowerCase() + "'")
}

然后,在您的客户端中:

spell('some_name').then(function(result) { console.log(result); })

或者,如果您想等待:

let results = await spell('some_name')
console.log(results)

不知道你是否在使用它,但 "parameterized queries"将防范 SQL 注入(inject)攻击。您选择的 NPM 包应该具有充分管理的实现。

关于javascript - 如何以字符串形式返回 promise 的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51851643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com