【怎么绑定蚂蚁溯源码】【绿福摩猫粮溯源码】【长安打赏系统源码免费下载】rest风格源码_rest风格编程
1.使用Sequelize快速构建PostgreSQL数据的风格风格CRUD操作详解
2.哔哩哔哩/rest什么意思?
3.ElasticSearch客户端源码:RestHighLevelClient
使用Sequelize快速构建PostgreSQL数据的CRUD操作详解
之前写过一个专栏《布道API》来介绍API的REST风格及推荐实践,今天开始来构建一个管理系统的源码API服务,首先需要处理的编程就是数据存储,本文将结合实际开发总结在NodeJS下使用Sequelize快速构建PostgreSQL数据的风格风格CRUD操作。项目源代码:github.com/QuintionTang/pretender-service
SequelizeSequelize是源码一个基于promise的Node.jsORM工具,它具有强大的编程怎么绑定蚂蚁溯源码事务支持、关联关系、风格风格预读和延迟加载、源码读取复制等功能,编程支持的风格风格数据库包括:PostgreSQL、MySQL、源码MariaDB、编程SQLite和MSSQL。风格风格
Sequelize类是源码引用sequlize模块后获取一个顶级对象,通过它来创建sequlize实例,编程也可以通过该对象来获取模内其它对象的绿福摩猫粮溯源码引用,如:Utils工具类、Transaction事务类等。创建实例后,可以通过实例来创建或定义Model(模型)、执行查询、同步数据库结构等操作。
官方网站:docs.sequelizejs.com/
添加和配置在安装模块之前,首先安装开发工具Sequelize-CLI
sudonpminstall-gsequelize-cli接下来在项目目录下安装数据存储相关的模块。
npminstallsequelize--savenpminstallpgpg-hstore--save现在在项目根目录下创建文件.sequelizerc,代码如下:
constpath=require('path');module.exports={ "config":path.resolve('./config','db.json'),"models-path":path.resolve('./models'),'seeders-path':path.resolve('./seeders'),'migrations-path':path.resolve('./migrations')};该文件将告诉Sequelize初始化,以生成config、models到特定目录。接下来,输入命令初始化Sequelize。
sequelizeinit该命令将创建config/db.json,长安打赏系统源码免费下载models/index.js,migrations和seeders目录和文件。命令执行完毕之后打开并编辑config/db.json来配置数据库连接信息。
{ "development":{ "username":"dbusername","password":"dbpassword","database":"crayon-admin","host":".0.0.1","dialect":"postgres","options":{ "operatorsAliases":false},"logging":false},"test":{ "username":"dbusername","password":"dbpassword","database":"crayon-admin","host":".0.0.1","dialect":"postgres"},"production":{ "username":"dbusername","password":"dbpassword","database":"crayon-admin","host":".0.0.1","dialect":"postgres"}}目录说明:
migrations:所有迁移文件,通过sequelizedb:migrate创建相应数据表
seeders:种子文件,即初始化需要插入到数据库中的数据,运行sequelizedb:seed:all
创建Models和Migrations使用CLI工具Sequelize-CLI创建administrators表
sequelizemodel:create--nameadministrators--attributesid:integer,add_time:integer,last_login:integer,username:string,email:string,login_ip:string执行后会生成两个文件
/src/migrations/-create-administrators.js:创建数据表脚本,用于数据库初始化。
"usestrict";module.exports={ up:async(queryInterface,Sequelize)=>{ awaitqueryInterface.createTable("administrators",{ id:{ allowNull:false,autoIncrement:true,primaryKey:true,type:Sequelize.INTEGER,},add_time:{ type:Sequelize.INTEGER,},last_login:{ type:Sequelize.INTEGER,},username:{ type:Sequelize.STRING,},password:{ type:Sequelize.STRING,},email:{ type:Sequelize.STRING,},login_ip:{ type:Sequelize.STRING,},});},down:async(queryInterface,Sequelize)=>{ awaitqueryInterface.dropTable("administrators");},};/src/models/administrators.js:生成的model文件
"usestrict";const{ Model}=require("sequelize");module.exports=(sequelize,DataTypes)=>{ classadministratorsextendsModel{ }administrators.init({ id:{ type:DataTypes.INTEGER,autoIncrement:true,primaryKey:true,},add_time:DataTypes.INTEGER,last_login:DataTypes.INTEGER,username:DataTypes.STRING,password:DataTypes.STRING,email:DataTypes.STRING,login_ip:DataTypes.STRING,},{ sequelize,indexes:[{ unique:true,fields:["id"],},],freezeTableName:true,timestamps:false,//是否自动添加时间戳createAt,updateAtmodelName:"administrators",});returnadministrators;};现在执行命令:
sequelizedb:migrate执行成功后将在连接的数据库中创建数据表:administrators。
创建seedseed用于初始化插入数据,如管理员,在系统运行前需要创建一个默认账号,这些默认账号信息就写在seed文件中。
创建seed命令如下:
sequelizeseed:create--nameadministrator执行成功后将会在seeders文件夹中创建文件,如何让k线柱变色源码修改代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save0现在将seed中的数据插入到数据库中,执行一下命令:
npminstallsequelize--savenpminstallpgpg-hstore--save1创建Services创建文件夹services,文件夹中代码封装与model交互的方法,包括所有CRUD(创建,读取,更新和删除)操作,创建administrators.js,实现的逻辑为获取账号信息、更新账号信息,代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save2创建Controllers上面创建的services文件用于控制器,在控制器文件夹中创建一个名为administrators.js的文件,代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save3创建Routers在文件夹routers中创建文件administrators.js文件,代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save4创建入口现在来为服务创建接口,项目根目录下创建文件app.js,代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save5现在执行命令nodeapp.js启动服务,将看到终端效果如下:
至此,完成一个基本的3D场景棋牌源码网API登录服务,还有待完善,后续在迭代中完善。文章涉及的代码在GitHub上。
作者:天行无忌哔哩哔哩/rest什么意思?
哔哩哔哩(英文名称:bilibili,简称B站)现为中国年轻世代高度聚集的文化社区和视频平台,该网站于年6月日创建,被粉丝们亲切地称为“B站”。年3月日,哔哩哔哩在美国纳斯达克上市。B站早期是一个ACG(动画、漫画、游戏)内容创作与分享的视频网站。经过十年多的发展,围绕用户、创作者和内容,构建了一个源源不断产生优质内容的生态系统,B站已经涵盖多个兴趣圈层的多元文化社区,曾获得QuestMobile研究院评选的“Z世代偏爱APP”和“Z世代偏爱泛娱乐APP”两项榜单第一名并入选“BrandZ”报告最具价值中国品牌强。年4月日,针对“后台源码泄露”一事,B站做出回应:经内部紧急核查,确认该部分代码属于较老的历史版本;5月日,哔哩哔哩发布通知称,因弹幕系统技术升级,5月日起至6月6日网站暂时关闭弹幕功能。
B站的特色是悬浮于视频上方的实时评论,即“弹幕”。弹幕可以给观众一种“实时互动”的错觉, 用户可以在观看视频时发送弹幕,其他用户发送的弹幕也会同步出现在视频上方 。但不少观众在观看时反应,弹幕上时不时回闪现“哔哩哔哩rest”,这个标语究竟代表了什么呢?
其实,由于b站拥有众多用户,但因为一些视频不适合青少年观看以及视频可能涉及低俗内容,导致误导青少年,因此b站将这些可疑性视频的弹幕统一替换成/test,用于限流以及减少人们观看的时长。(原理是重复弹幕可能引起观众不满,从而减少逗留在此视频的时长)现在出现了新的替换内容,为/rest, /倒放
ElasticSearch客户端源码:RestHighLevelClient
ElasticSearch源码版本 7.5.2
RestHighLevelClient的核心在于提供多样的API给开发者使用,每个API均对应同步与异步两种请求方式,异步请求以async结尾,且需配合监听器处理响应结果。
在初始化RestHighLevelClient时,主要过程包括创建HttpClient、初始化RestClient以及启动HttpClient。HttpClient通过nio的reactor模式处理请求,并由线程工厂创建reactorThread。
初始化RestHighLevelClient实例时,核心字段registry的构建包括整合聚合类操作、插件类和自定义NamedXContentRegistry.Entry,最终构建出NamedXContentRegistry。
同步与异步请求的实现方式分为三对函数,分别增加parseEntity和处理异常返回Optional功能。同步请求方法在最终处理返回结果时,利用entityParser解析实体或返回Optional。异步请求则需要监听器,于监听器内处理返回结果。
以Delete By Query API为例,分析其同步请求流程包括构建请求、发起请求和处理响应。构建请求参数需遵循特定规则,发起请求后通过通用函数式调用方法执行,最后通过entityParser解析响应或返回Optional。
对于响应处理,Delete By Query API返回的是scroll request的响应,即BulkByScrollResponse,包含特定字段信息。此API的实现依赖于restHighLevelClient的performRequestAndParseEntity方法。
除了自身支持的API,RestHighLevelClient还提供对其他Client的接口。以IndicesClient为例,执行Delete Index API时,同样调用performRequestAndParseEntity方法实现。
综上所述,RestHighLevelClient作为ElasticSearch客户端,通过提供丰富的API、支持同步与异步请求,并通过初始化流程构建高效响应机制,为开发者提供了灵活且强大的数据检索与管理工具。