加载数据后,您可以使用 Data API 执行比上一个模块中执行的 Select 1 查询更复杂的操作。
常见的访问模式是获取用户。您可以在此处尝试。
查看 scripts/fetchUser.js 中的代码。此代码包含应用程序调用以获取用户的内部方法。代码如下所示:
const AWS = require('aws-sdk')
const rdsdataservice = new AWS.RDSDataService();
const fetchUser = async (userId) => {
const params = {
resourceArn: process.env.DATABASE_ARN,
secretArn: process.env.SECRET_ARN,
includeResultMetadata: true,
sql: 'SELECT user_id, username, height, weight from users where user_id = :user_id',
parameters: [
{
name: 'user_id',
value: { longValue: userId }
}
]
}
const results = await rdsdataservice.executeStatement(params).promise()
return results
}
fetchUser(22).then((results) => console.log(JSON.stringify(results, null, 2)))
您的 fetchUser 函数采用一个参数 -- 要获取的用户的用户 ID。然后,它使用 Data API 进行查询以获取您的用户。
文件底部是一个使用 fetchUser 函数的示例,方法是使用用户 userId 为 22的用户调用该函数。
通过在终端中运行以下命令来执行此脚本:
{
"columnMetadata": [
{
"arrayBaseColumnType": 0,
"isAutoIncrement": true,
"isCaseSensitive": false,
"isCurrency": false,
"isSigned": true,
"label": "user_id",
"name": "user_id",
"nullable": 0,
"precision": 10,
"scale": 0,
"schemaName": "",
"tableName": "users",
"type": 4,
"typeName": "serial"
},
{
"arrayBaseColumnType": 0,
"isAutoIncrement": false,
"isCaseSensitive": true,
"isCurrency": false,
"isSigned": false,
"label": "username",
"name": "username",
"nullable": 0,
"precision": 50,
"scale": 0,
"schemaName": "",
"tableName": "users",
"type": 12,
"typeName": "varchar"
},
{
"arrayBaseColumnType": 0,
"isAutoIncrement": false,
"isCaseSensitive": false,
"isCurrency": false,
"isSigned": true,
"label": "height",
"name": "height",
"nullable": 0,
"precision": 10,
"scale": 0,
"schemaName": "",
"tableName": "users",
"type": 4,
"typeName": "int4"
},
{
"arrayBaseColumnType": 0,
"isAutoIncrement": false,
"isCaseSensitive": false,
"isCurrency": false,
"isSigned": true,
"label": "weight",
"name": "weight",
"nullable": 0,
"precision": 10,
"scale": 0,
"schemaName": "",
"tableName": "users",
"type": 4,
"typeName": "int4"
}
],
"numberOfRecordsUpdated": 0,
"records": [
[
{
"longValue": 22
},
{
"stringValue": "tonya13"
},
{
"longValue": 83
},
{
"longValue": 208
}
]
]
}
此输出非常详细。Data API 包含有关结果的大量信息,包括返回的每列的详细列元数据。
在每个数据访问方法中,此信息可能难以解析。在下一步中,您将使用实用方法来打包 Data API。