gpt4 book ai didi

javascript - 试图为数据库搜索结果创建一行

转载 作者:行者123 更新时间:2023-11-30 20:13:54 26 4
gpt4 key购买 nike

我尝试了以下方法来获得这种效果:

  • 如果没有行,显示❌
  • 如果有争吵但没有原因,请显示 ✅ 没有可用的原因
  • 如果有争吵和原因,说明✅和原因

const query1 = await db.all(SQL`SELECT * FROM list WHERE name = ${user}`);
const result = query1 ? typeof query1 === 'object' && typeof query1.reason === 'string' ? `✅\n${query1.reason}` : '✅\nNo reason available' : '❌';

query1 的输出是:

[ { id: 2542, name: 'Mesa', reason: 'test' } ]

但是我总是得到:✅ 没有可用的理由,我必须更改什么才能使其工作?

最佳答案

您正在 if 语句中查找 query1query1.reason,但这是错误的。 query1 是一个包含对象项的数组(对于为 SQL 数据库返回的每个对象大概 1 个对象)。所以你应该寻找 query1[0]query1[0].reason 来建立它。

请注意 typeof query1 仍然输出“对象”结果,因为数组也是 javascript 中的对象。

编辑

好吧,烦人的长线让我也错过了你的 if 语句中的另一个错误。您正在使用两个 : 运算符。我将假设您的意思是这与 if, else if, else 类似,但 1 个衬里是不可能的。这只是一种 if, else 操作。

您可以在 : 运算符之后嵌套另一个 if/else 语句。

示例代码:

const q1 = [ { id: 2542, name: 'Mesa', reason: 'test' } ];
const q2 - [];
const q3 = [ { id: 2542, name: 'test'} ]

function getRes(q){
const res = typeof q[0] == 'object' && typeof q[0].reason == 'string' && q.length > 0 ? console.log("got result with reason string") : (q.length > 0) ?console.log("got result but not reason string") : console.log("got no result")
return res;
}

getRes(q1) // console output: got result with reason string
getRes(q2) // console output: got no result
getRes(q2) // console output: got result but not reason string

但是这是非常烦人的代码,如果有人以后必须维护它等,阅读和理解起来会非常烦人。我肯定会选择常规的 if(){},else if{}, else 选项.

关于javascript - 试图为数据库搜索结果创建一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52116416/

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