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

游戏服务器_数据库作业_排行榜

小七 141 0

专有网络 VPC_虚拟_大数据数据处理

DR:在本文中,您将学习如何使用节点.js、Restify、Joi和MongoDB。您还将有机会学习如何在此堆栈上使用依赖注入。如果需要,您可以在GitHub存储库中找到本文中开发的代码。"了解如何使用@nodejs、Restify、Joi和@MongoDB构建组织良好的api。"在推特上留言开发组织良好的API节点.js在本文中,您将构建一个birthdates API,它允许您注册和查询您认识的人的生日。结构化节点.jsAPI一直是初学者最痛苦的事情节点.js开发商已经通过了。因此,在接下来的部分中,您将学习如何正确地构造和组织RESTful节点.jsAPI和一些很酷的工具,如Restify、Joi和MongoDB。你会用什么工具如前所述,您将使用Restify、Joi和MongoDB等工具。本节简要介绍这些工具。恢复恢复是一个节点.js为构建语义正确的restfulweb服务而优化的web服务框架。如果你查看他们的官方网页,你会发现像Netflix和Pinterest这样的大公司在他们的应用程序中使用Restify。乔伊您将使用Joi来验证参数、查询和请求主体。Joi坐在路由级别,基本上检查发送到API的请求的正确性。只有语义正确的请求才能到达应用程序的控制器。蒙古达MongoDB是一个跨平台、开源的面向文档的数据库(也称为NoSQL数据库)。您将使用MongoDB来持久化和检索由您将在本文中构建的API管理的数据(生日)。构建生日API首先,你需要检查你是否有节点.js、NPM和安装在开发计算机上的MongoDB实例:节点—版本npm—版本mongo—版本如果你没有节点.jsNPM,物联网工程是什么,从这个网址抓取。如果没有MongoDB,可以在这个URL中找到如何安装它的说明。生日API终结点在检查了依赖关系之后,就可以开始构建应用程序了。最后,您将拥有一个具有以下端点的API:POST/users:创建新用户的端点。GET/users/{username}:按用户名检索用户的端点。POST/birthdates:和用于注册新生日的端点。POST/birthdates/{username}:检索某个用户的生日的端点。设置项目结构你将从头开始创建你的应用程序。因此,创建一个名为birthdates api的新目录(它将被引用为项目根目录),并执行以下命令:#如果还没有,请创建项目根目录mkdir生日api#把终端移进去cd生日api#创建子目录mkdir-p应用程序/配置应用程序/控制器应用程序/库应用程序/中间件\应用程序/模型应用程序/路线应用程序/服务应用程序/验证接下来,您需要用npm初始化项目,物联网技术及应用,这样您就可以得到包.json描述项目并管理其依赖项的文件。因此,在项目根目录下执行下面的命令并按照提示(将入口点设置为服务器.js):#回答NPM提出的所有问题npm初始化正在安装依赖项使用NPM初始化项目后,可以安装其依赖项:npm install—保存mongoose restify joi http status restify errors restify url semver温斯顿@下一个多恩夫下面的列表简要说明了这些库的作用:mongoose是一个MongoDB对象建模工具,旨在异步环境中工作。httpstatus是一个与http状态代码交互的实用程序。restify errors是一个库,它包含一组错误构造函数,用它们的默认状态代码创建新的错误对象。restifyurl semver是一个用于对restifyapi进行版本控制的库。winston是一个支持多种传输的通用日志库。传输本质上是日志的存储设备。dotenv是一个将环境变量从.env文件加载到进程.env.正在创建应用程序配置一个应用程序的配置是在不同环境下可能会有所不同的一切。因此,返利购物,使用环境变量可以很容易地根据环境更改配置值,而不必更改任何代码。因此,您将在项目根目录中创建一个名为.env的新文件,并向其中添加以下变量:节点路径=。应用程序环境=开发APP_NAME=生日apiAPP_端口=5000LOG_PATH=日志/生日-api.日志LOG_ENABLE_CONSOLE=真DB_端口=27017DB_HOST=本地主机DB_NAME=生日接下来,将这些变量加载到配置.js文件。因此,在./app/configs目录中,创建配置.js归档并添加以下代码:'使用严格';模块.导出= () => ({应用程序:{姓名:process.env.APP_名称,端口:process.env.APP_端口||8000个,环境:进程环境应用程序环境,日志路径:process.env.LOG_路径,},蒙哥:{端口:process.env.DB_端口,主持人:process.env.DB_主机,姓名:process.env.DB_名称},应用程序日志记录:{文件:process.env.LOG_路径,级别:process.env.LOG_级别||"信息",慰问:process.env.LOG_启用_控制台||是的}});节点.js环境变量始终加载到进程.env对象。所以,要访问.env文件中声明的任何变量,只需调用process.env.VAR_名称. 也就是说,如果您希望由于环境的变化而更改变量,则不需要修改配置文件。您只需要修改.env文件。设置恢复服务器设置新Restify服务器的第一件事是创建一个名为jsend.js文件在./app/lib目录中。在该文件中,您将添加以下代码:'使用严格';函数formatJSend(req,res,body){函数格式错误(res,body){const isClientError=住宅状态代码>=400&&住宅状态代码 {控制台.log(`${配置.app.name}服务器正在端口上运行-${配置.app.port}`);});您所做的第一件事是将.env文件中的变量加载到进程.env一旦应用程序启动。然后,您开始导入依赖项并使用先前创建的配置创建服务器。Unix用户可以在项目根目录中使用export$(cat.env | sed-e/^$/d-e/^#/d | xargs)将.env变量加载到shell环境中。在项目根目录中,可以使用以下命令启动服务器:节点服务器.js如果成功,企业建站平台,您应该在控制台中看到:设置记录器现在,您将为winston库创建一个包装器,什么叫云服务器,以格式化日志输出并根据环境创建传输。所以,创建一个名为记录器.js在./app/lib/中添加以下代码:'使用严格';const{createLogger,format,transports}=require('winston');const{combine,timestamp,label,prettyPrint}=格式;const createTransports=函数(配置){const customTransports=[];//设置文件传输如果(配置文件) {//设置日志传输自定义传输.push(新的传输.File({文件名:配置文件,级别:配置级别}));}//如果控制台设置为true时,将包含控制台记录器。如果(配置控制台) {自定义传输.push(新的运输控制台({级别:配置级别}));}返回海关运输;};模块.导出= {创建:函数(配置){返回createLogger({传输:创建传输(配置),