云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名交易_mysql数据库练习_折扣

小七 141 0

哈皮开发现代API哈皮.js, 节点.js,和Redis了解如何使用哈皮.js, 节点.js,和Redis。

在本文中,您将学习如何使用哈皮.js以及节点.js,同时使用Redis作为持久层。由于没有安全层就不可能发布API,因此您还将学习如何使用Auth0保护应用程序。如果需要,您可以在GitHub存储库中找到本文中开发的最终代码。"学习如何利用@hapijs、#redis和@nodejs等工具轻松构建现代API。"在推特上留言是什么Hapi.js?哈皮.js是用于创建后端API的框架。什么是好的哈皮.js,与其他解决方案(如Express)相比,是按配置编码的体系结构。正如您将看到的,大多数"编码"实际上是通过调整庞大的配置界面来完成的哈皮.js提供给开发人员。这种方法有助于从处理程序中分离HTTP的公共方面。"@hapijs的酷之处在于它提供了一种按配置进行编码的方法,从而简化了开发过程。"在推特上留言什么是Redis,你要建什么?Redis是一个开源的内存数据存储,它提供了一个接口,使应用程序可以基于键值方法操作数据。由于Redis数据库中的所有内容都是通过键访问的值,因此从中获取数据的速度非常快。Redis的这一特性使得这个数据库非常适合于任务列表之类的应用程序。因此,在本文中,您将使用Redis作为支持待办事项列表应用程序的后端API的持久层。在本文中,您不会开发前端应用程序,但您很快就会在即将到来的应用程序中开发。注意:在本文中,您将使用哈皮.js17这个版本与第16版相比有了突破性的变化。你为什么关心Docker?为了保持机器的清洁,您不打算直接在操作系统上安装Redis。相反,您将在Docker容器中运行Redis。如果你不知道的话,Docker是一个解决方案,它可以让用户运行彼此完全隔离的程序。Docker通过将这些程序封装到与虚拟机工作类似的引擎中来实现这一点。但是,与传统的虚拟机相比,容器的成本要低得多(即,更轻量级)。例如,您可以在节点.js实例为16MB或更低的web应用程序提供服务。另外,Docker使用了一个名为dockerfile的文件,该文件有助于与其他人共享容器配置的过程。在本文中,您将下载并使用一个预构建的Redis容器,该容器允许您使用开箱即用的Redis,无需设置。引导哈皮.js美国石油学会API将包含主服务器设置和需要定义的每个路由的单独文件。基本上,您将创建一个包含以下结构的项目:src/:将保存与服务器设置相关的代码的目录。src/routes:定义API端点的目录。因此,打开一个终端,找到要在其中存储项目的目录,然后运行以下命令:#例如,移动到您的主目录(或任何其他位置)光盘~#为项目创建目录mkdir nodejs hapijs redis公司#进去吧cd节点hapijs redis#并创建两个子目录mkdir-p src/路线之后,您可以将主目录初始化为NPM项目并在其上安装一些依赖项:#将此目录初始化为NPM项目npm初始-y#安装项目的依赖项npm安装--save boom好的控制台好的压缩hapi hapi-auth-jwt2 hapi需要https惰性joi jwks rsa lout node env file redis uuid vision如您所见,您将需要安装大量的依赖项。在本文中,您将看到每种方法的适用性。但是,下面的列表对它们作了简要介绍:这是一个与哈皮.js抛出HTTP友好的错误对象。好:这是一个你要插入的库哈皮.js监视和报告各种服务器事件。好的控制台:这个库对于将好的服务器事件转换成格式化的字符串很有用。好的压缩:这个库对于根据好的事件选项过滤事件很有用。哈皮:这是哈皮.js本身。hapi-auth-jwt2:这是用于哈皮.js使用JSON Web令牌的应用程序。hapi需要https:这是一个可以帮助您强制安全连接的库(即https)。惰性:这是一个库,可以帮助您在哈皮.js应用程序编程接口。joi:这个库为JavaScript对象引入了一种对象模式描述语言和一个验证器。jwks rsa:这个库从jwks(JSON Web Key Set)端点检索rsa公钥。这个库帮助您为哈皮.js后端。node env file:此库解析环境文件并将其加载到节点.js环境(即进程.env对象)。redis:这是一个redis客户端节点.js应用。uuid:这个库用JavaScript生成RFC兼容的uuid。远景:此库支持模板呈现哈皮.js.现在你知道你刚安装了什么,打开包.jsonNPM为您创建的文件,并将其脚本属性替换为:"脚本":{"开始":"节点索引.js"}注意:您可能还想现在启动Git(或任何其他版本控制系统)并开始提交您的工作。使用Git这样的工具来管理源代码总是一个好主意。用Docker初始化Redis如前所述,您将在Docker的帮助下在本地机器中引导一个Redis实例。因此,在继续之前,您必须在本地安装Docker。安装后,可以通过运行以下命令来测试安装:docker—版本如果你可以在本地运行Redis命令,当然可以在本地运行:docker运行—名称nodejs hapijs redis\-电话:6379:6379\-d redis公司如果这是您第一次在Docker的帮助下本地运行Redis,这个命令会输出Unable to find image'redis:最新'在您的终端本地,并将开始从Docker Hub下载Redis映像。在本文中,您不需要了解Docker是如何工作的。发出上面的命令就足以让您继续前进了。但是,在您读完本文之后,请确保您了解更多有关Docker的信息。这个工具太棒了。正在注册Auth0要从头开始使用安全的后端,您将立即注册一个免费的Auth0帐户(即,如果您还没有),并将您的项目配置为使用此标识提供程序。作为一个全球领先的解决方案,你可以提供一个全球领先的身份。除了经典的用户名和密码身份验证过程外,Auth0还允许您添加诸如社交登录、多因素身份验证等功能,只需单击几下。因此,注册Auth0之后,可以转到仪表板的API部分,然后单击createapi。然后,在Auth0显示的对话框中,您必须提供API的名称(例如"哈皮.js教程")和标识符(例如。,:3000)。API的名称只是一个标签,因此您可以很容易地记住API是关于什么的。标识符是配置后端时将使用的字符串。这个标识符实际上并不一定是一个URL,因为Auth0不会在任何时候调用它,但建议使用一个URL。填写完表单后,单击Create以便Auth0完成创建。创建环境文件由于您将拥有Auth0帐户的配置,因此您将把它保存在一个单独的文件中,以便您可以轻松地在生产环境和测试环境之间切换。因此,在项目根目录中创建一个名为.env的文件,并将以下内容放入其中:授权观众=http://localhost:3000个AUTH0_DOMAIN=主机=本地主机端口=3000REDIS_HOST=本地主机REDIS_端口=6379SSL=假用您在创建AUTH0帐户时选择的域替换(例如博客-samples.auth0.com网站)。其他配置变量将在您的本地环境中工作,除非您为API选择了另一个标识符。如果是这样,则必须为AUTH0_audition变量设置正确的值。注意:上面的SSL变量定义了API是否只接受通过安全通道(即HTTPS)的请求。此变量将由您之前安装的hapi require https库使用。创建哈皮.js服务器在正确定义环境变量之后,您必须创建一个脚本来启动哈皮.js服务器。为此,请创建一个名为索引.js在项目根目录(即nodejs hapijs redis目录)中添加以下代码:需要('node-env-file')(`${uu dirname}/.env`);const redis=require('redis');const createServer=require('./src/server');const{promisify}=require('util');const start=async()=>{const server=等待createServer({端口:进程.env.PORT,主持人:进程.env.HOST,},{启用SSL:进程.env.SSL==='真',});常量redisClient=redis.createClient({主持人:process.env.REDIS_主机,端口:process.env.REDIS_端口,});redisClient.lpusasync=预期(重新客户端.lpush).bind(再客户端);redisClient.lRangeAync=预期(重新客户端.lrange).bind(再客户端);redisClient.llenAsync=预期(再客户端.llen).bind(再客户端);redisClient.lremAsync=预期(redisClient.lrem).bind(再客户端);redisClient.lsetAsync=预期(再客户端.lset).bind(再客户端);再客户端.on("错误",函数(err){控制台.错误("Redis error.",err);});服务器.app.redis=