Javascript 如何使用节点postgres从数据库中获取值

Javascript 如何使用节点postgres从数据库中获取值,javascript,node.js,postgresql,discord.js,node-postgres,Javascript,Node.js,Postgresql,Discord.js,Node Postgres,我很难从数据库表中获取列值。 以下是输出,而不是值: 我试着用控制台记录变量,它们输出正确。以下是console.log结果: 2021-04-09T07:12:36.896383+00:00 app[worker.1]: Result { 2021-04-09T07:12:36.896396+00:00 app[worker.1]: command: 'SELECT', 2021-04-09T07:12:36.896396+00:00 app[worker.1]: rowCount:

我很难从数据库表中获取列值。 以下是输出,而不是值:

我试着用控制台记录变量,它们输出正确。以下是console.log结果:

2021-04-09T07:12:36.896383+00:00 app[worker.1]: Result {
2021-04-09T07:12:36.896396+00:00 app[worker.1]:   command: 'SELECT',
2021-04-09T07:12:36.896396+00:00 app[worker.1]:   rowCount: 1,
2021-04-09T07:12:36.896396+00:00 app[worker.1]:   oid: null,
2021-04-09T07:12:36.896398+00:00 app[worker.1]:   rows: [ { name: 'carryminati' } ],
2021-04-09T07:12:36.896399+00:00 app[worker.1]:   fields: [
2021-04-09T07:12:36.896399+00:00 app[worker.1]:     Field {
2021-04-09T07:12:36.896400+00:00 app[worker.1]:       name: 'name',
2021-04-09T07:12:36.896400+00:00 app[worker.1]:       tableID: 16732955,
2021-04-09T07:12:36.896400+00:00 app[worker.1]:       columnID: 3,
2021-04-09T07:12:36.896401+00:00 app[worker.1]:       dataTypeID: 1043,
2021-04-09T07:12:36.896401+00:00 app[worker.1]:       dataTypeSize: -1,
2021-04-09T07:12:36.896401+00:00 app[worker.1]:       dataTypeModifier: 22,
2021-04-09T07:12:36.896402+00:00 app[worker.1]:       format: 'text'
2021-04-09T07:12:36.896402+00:00 app[worker.1]:     }
2021-04-09T07:12:36.896403+00:00 app[worker.1]:   ],
2021-04-09T07:12:36.896403+00:00 app[worker.1]:   _parsers: [ [Function: noParse] ],
2021-04-09T07:12:36.896403+00:00 app[worker.1]:   _types: TypeOverrides {
2021-04-09T07:12:36.896404+00:00 app[worker.1]:     _types: {
2021-04-09T07:12:36.896404+00:00 app[worker.1]:       getTypeParser: [Function: getTypeParser],
2021-04-09T07:12:36.896404+00:00 app[worker.1]:       setTypeParser: [Function: setTypeParser],
2021-04-09T07:12:36.896405+00:00 app[worker.1]:       arrayParser: [Object],
2021-04-09T07:12:36.896405+00:00 app[worker.1]:       builtins: [Object]
2021-04-09T07:12:36.896406+00:00 app[worker.1]:     },
2021-04-09T07:12:36.896406+00:00 app[worker.1]:     text: {},
2021-04-09T07:12:36.896406+00:00 app[worker.1]:     binary: {}
2021-04-09T07:12:36.896407+00:00 app[worker.1]:   },
2021-04-09T07:12:36.896407+00:00 app[worker.1]:   RowCtor: null,
2021-04-09T07:12:36.896408+00:00 app[worker.1]:   rowAsArray: false
2021-04-09T07:12:36.896408+00:00 app[worker.1]: } Result {
2021-04-09T07:12:36.896408+00:00 app[worker.1]:   command: 'SELECT',
2021-04-09T07:12:36.896409+00:00 app[worker.1]:   rowCount: 1,
2021-04-09T07:12:36.896409+00:00 app[worker.1]:   oid: null,
2021-04-09T07:12:36.896409+00:00 app[worker.1]:   rows: [ { botsay: 'Hey @everyone' } ],
2021-04-09T07:12:36.896410+00:00 app[worker.1]:   fields: [
2021-04-09T07:12:36.896410+00:00 app[worker.1]:     Field {
2021-04-09T07:12:36.896410+00:00 app[worker.1]:       name: 'botsay',
2021-04-09T07:12:36.896411+00:00 app[worker.1]:       tableID: 16732955,
2021-04-09T07:12:36.896411+00:00 app[worker.1]:       columnID: 2,
2021-04-09T07:12:36.896412+00:00 app[worker.1]:       dataTypeID: 1043,
2021-04-09T07:12:36.896412+00:00 app[worker.1]:       dataTypeSize: -1,
2021-04-09T07:12:36.896412+00:00 app[worker.1]:       dataTypeModifier: 24,
2021-04-09T07:12:36.896413+00:00 app[worker.1]:       format: 'text'
2021-04-09T07:12:36.896413+00:00 app[worker.1]:     }
2021-04-09T07:12:36.896413+00:00 app[worker.1]:   ],
2021-04-09T07:12:36.896414+00:00 app[worker.1]:   _parsers: [ [Function: noParse] ],
2021-04-09T07:12:36.896414+00:00 app[worker.1]:   _types: TypeOverrides {
2021-04-09T07:12:36.896415+00:00 app[worker.1]:     _types: {
2021-04-09T07:12:36.896415+00:00 app[worker.1]:       getTypeParser: [Function: getTypeParser],
2021-04-09T07:12:36.896415+00:00 app[worker.1]:       setTypeParser: [Function: setTypeParser],
2021-04-09T07:12:36.896416+00:00 app[worker.1]:       arrayParser: [Object],
2021-04-09T07:12:36.896416+00:00 app[worker.1]:       builtins: [Object]
2021-04-09T07:12:36.896416+00:00 app[worker.1]:     },
2021-04-09T07:12:36.896417+00:00 app[worker.1]:     text: {},
2021-04-09T07:12:36.896417+00:00 app[worker.1]:     binary: {}
2021-04-09T07:12:36.896417+00:00 app[worker.1]:   },
2021-04-09T07:12:36.896418+00:00 app[worker.1]:   RowCtor: null,
2021-04-09T07:12:36.896418+00:00 app[worker.1]:   rowAsArray: false
2021-04-09T07:12:36.896418+00:00 app[worker.1]: } Result {
2021-04-09T07:12:36.896419+00:00 app[worker.1]:   command: 'SELECT',
2021-04-09T07:12:36.896419+00:00 app[worker.1]:   rowCount: 1,
2021-04-09T07:12:36.896419+00:00 app[worker.1]:   oid: null,
2021-04-09T07:12:36.896421+00:00 app[worker.1]:   rows: [ { channelid: '770245428876148736' } ],
2021-04-09T07:12:36.896421+00:00 app[worker.1]:   fields: [
2021-04-09T07:12:36.896421+00:00 app[worker.1]:     Field {
2021-04-09T07:12:36.896422+00:00 app[worker.1]:       name: 'channelid',
2021-04-09T07:12:36.896423+00:00 app[worker.1]:       tableID: 16732955,
2021-04-09T07:12:36.896423+00:00 app[worker.1]:       columnID: 4,
2021-04-09T07:12:36.896424+00:00 app[worker.1]:       dataTypeID: 1043,
2021-04-09T07:12:36.896424+00:00 app[worker.1]:       dataTypeSize: -1,
2021-04-09T07:12:36.896424+00:00 app[worker.1]:       dataTypeModifier: 41,
2021-04-09T07:12:36.896425+00:00 app[worker.1]:       format: 'text'
2021-04-09T07:12:36.896425+00:00 app[worker.1]:     }
2021-04-09T07:12:36.896426+00:00 app[worker.1]:   ],
2021-04-09T07:12:36.896426+00:00 app[worker.1]:   _parsers: [ [Function: noParse] ],
2021-04-09T07:12:36.896426+00:00 app[worker.1]:   _types: TypeOverrides {
2021-04-09T07:12:36.896427+00:00 app[worker.1]:     _types: {
2021-04-09T07:12:36.896427+00:00 app[worker.1]:       getTypeParser: [Function: getTypeParser],
2021-04-09T07:12:36.896427+00:00 app[worker.1]:       setTypeParser: [Function: setTypeParser],
2021-04-09T07:12:36.896428+00:00 app[worker.1]:       arrayParser: [Object],
2021-04-09T07:12:36.896428+00:00 app[worker.1]:       builtins: [Object]
2021-04-09T07:12:36.896428+00:00 app[worker.1]:     },
2021-04-09T07:12:36.896429+00:00 app[worker.1]:     text: {},
2021-04-09T07:12:36.896429+00:00 app[worker.1]:     binary: {}
2021-04-09T07:12:36.896429+00:00 app[worker.1]:   },
2021-04-09T07:12:36.896430+00:00 app[worker.1]:   RowCtor: null,
2021-04-09T07:12:36.896430+00:00 app[worker.1]:   rowAsArray: false
2021-04-09T07:12:36.896431+00:00 app[worker.1]: } Result {
2021-04-09T07:12:36.896431+00:00 app[worker.1]:   command: 'SELECT',
2021-04-09T07:12:36.896432+00:00 app[worker.1]:   rowCount: 1,
2021-04-09T07:12:36.896432+00:00 app[worker.1]:   oid: null,
2021-04-09T07:12:36.896432+00:00 app[worker.1]:   rows: [ { channel: 'manager-test' } ],
2021-04-09T07:12:36.896433+00:00 app[worker.1]:   fields: [
2021-04-09T07:12:36.896433+00:00 app[worker.1]:     Field {
2021-04-09T07:12:36.896434+00:00 app[worker.1]:       name: 'channel',
2021-04-09T07:12:36.896434+00:00 app[worker.1]:       tableID: 16732955,
2021-04-09T07:12:36.896434+00:00 app[worker.1]:       columnID: 5,
2021-04-09T07:12:36.896435+00:00 app[worker.1]:       dataTypeID: 1043,
2021-04-09T07:12:36.896435+00:00 app[worker.1]:       dataTypeSize: -1,
2021-04-09T07:12:36.896435+00:00 app[worker.1]:       dataTypeModifier: 34,
2021-04-09T07:12:36.896436+00:00 app[worker.1]:       format: 'text'
2021-04-09T07:12:36.896436+00:00 app[worker.1]:     }
2021-04-09T07:12:36.896436+00:00 app[worker.1]:   ],
2021-04-09T07:12:36.896437+00:00 app[worker.1]:   _parsers: [ [Function: noParse] ],
2021-04-09T07:12:36.896437+00:00 app[worker.1]:   _types: TypeOverrides {
2021-04-09T07:12:36.896438+00:00 app[worker.1]:     _types: {
2021-04-09T07:12:36.896438+00:00 app[worker.1]:       getTypeParser: [Function: getTypeParser],
2021-04-09T07:12:36.896438+00:00 app[worker.1]:       setTypeParser: [Function: setTypeParser],
2021-04-09T07:12:36.896439+00:00 app[worker.1]:       arrayParser: [Object],
2021-04-09T07:12:36.896440+00:00 app[worker.1]:       builtins: [Object]
2021-04-09T07:12:36.896440+00:00 app[worker.1]:     },
2021-04-09T07:12:36.896440+00:00 app[worker.1]:     text: {},
2021-04-09T07:12:36.896441+00:00 app[worker.1]:     binary: {}
2021-04-09T07:12:36.896441+00:00 app[worker.1]:   },
2021-04-09T07:12:36.896441+00:00 app[worker.1]:   RowCtor: null,
2021-04-09T07:12:36.896442+00:00 app[worker.1]:   rowAsArray: false
2021-04-09T07:12:36.896442+00:00 app[worker.1]: } Result {
2021-04-09T07:12:36.896442+00:00 app[worker.1]:   command: 'SELECT',
2021-04-09T07:12:36.896443+00:00 app[worker.1]:   rowCount: 1,
2021-04-09T07:12:36.896443+00:00 app[worker.1]:   oid: null,
2021-04-09T07:12:36.896443+00:00 app[worker.1]:   rows: [ { timer: '2' } ],
2021-04-09T07:12:36.896444+00:00 app[worker.1]:   fields: [
2021-04-09T07:12:36.896444+00:00 app[worker.1]:     Field {
2021-04-09T07:12:36.896444+00:00 app[worker.1]:       name: 'timer',
2021-04-09T07:12:36.896445+00:00 app[worker.1]:       tableID: 16732955,
2021-04-09T07:12:36.896445+00:00 app[worker.1]:       columnID: 6,
2021-04-09T07:12:36.896445+00:00 app[worker.1]:       dataTypeID: 25,
2021-04-09T07:12:36.896446+00:00 app[worker.1]:       dataTypeSize: -1,
2021-04-09T07:12:36.896447+00:00 app[worker.1]:       dataTypeModifier: -1,
2021-04-09T07:12:36.896447+00:00 app[worker.1]:       format: 'text'
2021-04-09T07:12:36.896448+00:00 app[worker.1]:     }
2021-04-09T07:12:36.896448+00:00 app[worker.1]:   ],
2021-04-09T07:12:36.896448+00:00 app[worker.1]:   _parsers: [ [Function: noParse] ],
2021-04-09T07:12:36.896449+00:00 app[worker.1]:   _types: TypeOverrides {
2021-04-09T07:12:36.896449+00:00 app[worker.1]:     _types: {
2021-04-09T07:12:36.896449+00:00 app[worker.1]:       getTypeParser: [Function: getTypeParser],
2021-04-09T07:12:36.896450+00:00 app[worker.1]:       setTypeParser: [Function: setTypeParser],
2021-04-09T07:12:36.896450+00:00 app[worker.1]:       arrayParser: [Object],
2021-04-09T07:12:36.896451+00:00 app[worker.1]:       builtins: [Object]
2021-04-09T07:12:36.896451+00:00 app[worker.1]:     },
2021-04-09T07:12:36.896451+00:00 app[worker.1]:     text: {},
2021-04-09T07:12:36.896452+00:00 app[worker.1]:     binary: {}
2021-04-09T07:12:36.896452+00:00 app[worker.1]:   },
2021-04-09T07:12:36.896452+00:00 app[worker.1]:   RowCtor: null,
2021-04-09T07:12:36.896453+00:00 app[worker.1]:   rowAsArray: false
2021-04-09T07:12:36.896453+00:00 app[worker.1]: } Result {
2021-04-09T07:12:36.896453+00:00 app[worker.1]:   command: 'SELECT',
2021-04-09T07:12:36.896454+00:00 app[worker.1]:   rowCount: 1,
2021-04-09T07:12:36.896454+00:00 app[worker.1]:   oid: null,
2021-04-09T07:12:36.896454+00:00 app[worker.1]:   rows: [ { savedname: 'iTxKniGhT' } ],
2021-04-09T07:12:36.896455+00:00 app[worker.1]:   fields: [
2021-04-09T07:12:36.896455+00:00 app[worker.1]:     Field {
2021-04-09T07:12:36.896455+00:00 app[worker.1]:       name: 'savedname',
2021-04-09T07:12:36.896456+00:00 app[worker.1]:       tableID: 16732955,
2021-04-09T07:12:36.896456+00:00 app[worker.1]:       columnID: 7,
2021-04-09T07:12:36.896457+00:00 app[worker.1]:       dataTypeID: 1043,
2021-04-09T07:12:36.896457+00:00 app[worker.1]:       dataTypeSize: -1,
2021-04-09T07:12:36.896457+00:00 app[worker.1]:       dataTypeModifier: 24,
2021-04-09T07:12:36.896458+00:00 app[worker.1]:       format: 'text'
2021-04-09T07:12:36.896458+00:00 app[worker.1]:     }
2021-04-09T07:12:36.896458+00:00 app[worker.1]:   ],
2021-04-09T07:12:36.896459+00:00 app[worker.1]:   _parsers: [ [Function: noParse] ],
2021-04-09T07:12:36.896459+00:00 app[worker.1]:   _types: TypeOverrides {
2021-04-09T07:12:36.896459+00:00 app[worker.1]:     _types: {
2021-04-09T07:12:36.896460+00:00 app[worker.1]:       getTypeParser: [Function: getTypeParser],
2021-04-09T07:12:36.896460+00:00 app[worker.1]:       setTypeParser: [Function: setTypeParser],
2021-04-09T07:12:36.896460+00:00 app[worker.1]:       arrayParser: [Object],
2021-04-09T07:12:36.896461+00:00 app[worker.1]:       builtins: [Object]
2021-04-09T07:12:36.896461+00:00 app[worker.1]:     },
2021-04-09T07:12:36.896461+00:00 app[worker.1]:     text: {},
2021-04-09T07:12:36.896462+00:00 app[worker.1]:     binary: {}
2021-04-09T07:12:36.896462+00:00 app[worker.1]:   },
2021-04-09T07:12:36.896462+00:00 app[worker.1]:   RowCtor: null,
2021-04-09T07:12:36.896463+00:00 app[worker.1]:   rowAsArray: false
2021-04-09T07:12:36.896463+00:00 app[worker.1]: } Result {
2021-04-09T07:12:36.896464+00:00 app[worker.1]:   command: 'SELECT',
2021-04-09T07:12:36.896464+00:00 app[worker.1]:   rowCount: 1,
2021-04-09T07:12:36.896464+00:00 app[worker.1]:   oid: null,
2021-04-09T07:12:36.896465+00:00 app[worker.1]:   rows: [
2021-04-09T07:12:36.896465+00:00 app[worker.1]:     {
2021-04-09T07:12:36.896466+00:00 app[worker.1]:       savedavatar: 'https://cdn.discordapp.com/avatars/410095697233313793/4015931f11053def4ef540d0731690cc.webp'
2021-04-09T07:12:36.896467+00:00 app[worker.1]:     }
2021-04-09T07:12:36.896467+00:00 app[worker.1]:   ],
2021-04-09T07:12:36.896467+00:00 app[worker.1]:   fields: [
2021-04-09T07:12:36.896468+00:00 app[worker.1]:     Field {
2021-04-09T07:12:36.896468+00:00 app[worker.1]:       name: 'savedavatar',
2021-04-09T07:12:36.896468+00:00 app[worker.1]:       tableID: 16732955,
2021-04-09T07:12:36.896469+00:00 app[worker.1]:       columnID: 8,
2021-04-09T07:12:36.896469+00:00 app[worker.1]:       dataTypeID: 1043,
2021-04-09T07:12:36.896469+00:00 app[worker.1]:       dataTypeSize: -1,
2021-04-09T07:12:36.896470+00:00 app[worker.1]:       dataTypeModifier: 504,
2021-04-09T07:12:36.896471+00:00 app[worker.1]:       format: 'text'
2021-04-09T07:12:36.896471+00:00 app[worker.1]:     }
2021-04-09T07:12:36.896471+00:00 app[worker.1]:   ],
2021-04-09T07:12:36.896471+00:00 app[worker.1]:   _parsers: [ [Function: noParse] ],
2021-04-09T07:12:36.896472+00:00 app[worker.1]:   _types: TypeOverrides {
2021-04-09T07:12:36.896472+00:00 app[worker.1]:     _types: {
2021-04-09T07:12:36.896482+00:00 app[worker.1]:       getTypeParser: [Function: getTypeParser],
2021-04-09T07:12:36.896482+00:00 app[worker.1]:       setTypeParser: [Function: setTypeParser],
2021-04-09T07:12:36.896483+00:00 app[worker.1]:       arrayParser: [Object],
2021-04-09T07:12:36.896483+00:00 app[worker.1]:       builtins: [Object]
2021-04-09T07:12:36.896483+00:00 app[worker.1]:     },
2021-04-09T07:12:36.896484+00:00 app[worker.1]:     text: {},
2021-04-09T07:12:36.896484+00:00 app[worker.1]:     binary: {}
2021-04-09T07:12:36.896484+00:00 app[worker.1]:   },
2021-04-09T07:12:36.896485+00:00 app[worker.1]:   RowCtor: null,
2021-04-09T07:12:36.896485+00:00 app[worker.1]:   rowAsArray: false
2021-04-09T07:12:36.896486+00:00 app[worker.1]: }
这是完整的代码存储库-

下面是负责获取过程的变量代码行

const tname=wait pool.query`SELECT name FROM Twitch_DB WHERE guildid=${message.guild.id}`; const botSay=wait pool.query`从Twitch_DB中选择botSay,其中guildid=${message.guild.id}`; const tchannelid=wait pool.query`从Twitch_DB中选择channelID,其中guildid=${message.guild.id}`; const tchannel=wait pool.query`SELECT channel FROM Twitch_DB WHERE guildid=${message.guild.id}`; const ttimer=wait pool.query`SELECT timer FROM Twitch_DB WHERE guildid=${message.guild.id}`; const savedName=wait pool.query`SELECT savedName FROM Twitch_DB WHERE guildid=${message.guild.id}`; const savedAvatar=wait pool.query`SELECT savedAvatar FROM Twitch_DB WHERE guildid=${message.guild.id}`; 这是我试图调用变量的代码块:

const enabledEmbed=新消息嵌入 .setAuthormessage.member.guild.name+播音员设置`https://static.twitchcdn.net/assets/favicon-32-d6025c14e900565d6177.png`, https://twitch.tv/ +user.data[0]。显示\u名称 .setTitle`:white\u check\u mark:Twitch播音器已启用` .setColor6441A4 .setThumbnailuser.data[0]。配置文件\u图像\u url .addFieldPre通知消息,`${botSay}` .addField`Streamer`、`${tname}`,true .addField`Channel`、`${tchannel}`,true .addField `检查间隔',`***${ttimer}***分钟',true .addFieldView计数器:,用户.data[0]。视图计数,true; 如果user.data[0].broadcaster_type==enabledEmbed.addFieldRank:,BASE!,符合事实的 否则{ enabledEmbed.addFieldRank:,user.data[0]。广播者_type.toUpperCase+!,true.setFootersavedName,savedAvatar; }
检索到的数据库行位于您记录的响应对象的rows属性中。这已经涵盖了。@JaredSmith所以,如果我像这样更改代码.addFieldPre-Notification消息,${botSay.rows[0].botSay},它会工作吗?@JaredSmith谢谢你的提示。让我哑口无言