在本模块中,您将了解我们如何在应用程序中使用 Redis 哈希来建模用户和位置数据。
在您的第一个编码练习中,您将添加一个新的路由,该路由接受用户的 ID 并返回他们的全名。
使用您的 IDE,打开您从 GitHub 存储库克隆的 node-js-crash-course
文件夹。打开文件 src/routes/user_routes.js
并找到路由 /user/:userId/fullname
,它看起来像这样
// EXERCISE: Get user's full name.
router.get(
'/user/:userId/fullname',
[param('userId').isInt({ min: 1 }), apiErrorReporter],
async (req, res) => {
const { userId } = req.params;
/* eslint-disable no-unused-vars */
const userKey = redis.getKeyName('users', userId);
/* eslint-enable */
// TODO: Get the firstName and lastName fields from the
// user hash whose key is in userKey.
// HINT: Check out the HMGET command...
// https://redis.ac.cn/commands/hmget
const [firstName, lastName] = ['TODO', 'TODO'];
res.status(200).json({ fullName: `${firstName} ${lastName}` });
},
);
在本练习中,您将修改代码以通过从 Redis 中检索所请求用户的 firstName 和 lastName 字段来返回用户的全名。
首先,确保您的服务器仍在运行,如果没有,请使用以下命令启动它
$ npm run dev
接下来,浏览到 https://localhost:8081/api/user/5/fullname
您应该看到
{
"fullName": "TODO TODO"
}
查看 Redis HMGET 命令的文档,它从 Redis 哈希中检索多个命名字段。您需要添加调用 Redis 客户端的 hmget
函数的代码,然后将返回的值放置到 firstName
和 lastName
变量中。您应该能够使用一次对 hmget
的调用来检索这两个值。有关如何调用 Redis 命令的指南,请查看 /user/:userId
路由的代码,该路由调用 HGETALL
命令。
nodemon 将在您每次保存更改时自动重新启动服务器。
准备测试您的解决方案时,请浏览到 https://localhost:8081/api/user/5/fullname
,您应该看到
{
"fullName": "Alejandro Reyes"
}
如果您需要我们团队的帮助, 加入我们的 Discord.
在此视频中,Justin 解释了什么是 Redis 哈希,并展示了常见的 Redis 哈希命令的工作原理