RPC в NodeJS

Содержание

Слайд 2

RPC - Remote Procedure Call

01

action: string – имя сущности
method: string – вызываемый

RPC - Remote Procedure Call 01 action: string – имя сущности method:
метод сущности
data: any[] - данные
type: string – тип операции. По умолчанию “rpc”
tid: number – идентификатор запроса

Слайд 3

Пример RPC запроса

[
{
“action”: “users”,
“method”: “Query”,
“data”: [{
“filter”: [{
“property”: “login”,
“value”: “user”
}]
}],
“type”: “rpc”,
“tid”: 1
}
]

Документация: https://www.appcode.pw/?page_id=463

Пример RPC запроса [ { “action”: “users”, “method”: “Query”, “data”: [{ “filter”:

Слайд 4

RPC в браузере

RPC в браузере

Слайд 5

Результат RPC

04

meta
success: boolean – результат выполнения запроса
msg: string – текст ошибки, если

Результат RPC 04 meta success: boolean – результат выполнения запроса msg: string
success = false
code:number – HTTP статус код
result
records: any[]|any – массив данных или объект
total: number – число результатов
time: number – время выполнения sql запроса
sql
query: string – запрос к БД
tid: number – идентификатор запроса
type: string – тип запроса
method: string – метод сущности
action: string – имя сущности
rpcTime: number – время выполнения RPC функции

Слайд 6

Результат RPC

Результат RPC

Слайд 7

RPC «сущность» в NodeJS

06

exports.[имя сущности] = function(session) {
return {
isLocal: true, /// !!!
[имя

RPC «сущность» в NodeJS 06 exports.[имя сущности] = function(session) { return {
сущности]: function(data, callback) {
callback([результат]);
}
};
}

Слайд 8

Пример RPC «сущности»

Пример RPC «сущности»

Слайд 9

Регистрация созданной сущности в RPC

08

var shell = require('postgresql-rpc-shell');
var shellObject = {
db: db,
namespace:

Регистрация созданной сущности в RPC 08 var shell = require('postgresql-rpc-shell'); var shellObject
ns,
contexts: [
require('./modules/webapi'),
require('./modules/adminapi')
],

};
app.use(shell(shellObject));

Слайд 10

postgresql-rpc-shell

09

Основная библиотека для работы с RPC в NodeJS

Авторизация
Обработка запросов
Выполнение операции
Фильтрация данных

postgresql-rpc-shell 09 Основная библиотека для работы с RPC в NodeJS Авторизация Обработка
по безопасности

Документирование:
https://docs.appcode.pw/projects?project=postgresql-rpc-shell

Слайд 11

postgresql-rpc-shell

10

Основная библиотека для работы с RPC в NodeJS

Авторизация
Обработка запросов
Выполнение операции
Фильтрация данных

postgresql-rpc-shell 10 Основная библиотека для работы с RPC в NodeJS Авторизация Обработка
по безопасности

Документирование:
https://docs.appcode.pw/projects?project=postgresql-rpc-shell

Слайд 12

Взаимодействие с БД

Подключение к БД и
генерация схемы

Запуск node bin/www

Генерация dbcontext.js


var render

Взаимодействие с БД Подключение к БД и генерация схемы Запуск node bin/www
= require('dynamic-schema-reader'); // модуль генерации шаблонов module.exports = function (callback) { reader({

connectionString: connectionString
autoRemove: true,
schemaList: ["'core'", "'public'", ...]
}, function (schemas) { var content = ejs.compile(…); fs.writeFileSync(path, content);

});
}

Слайд 13

Пример dbcontext.js

Пример dbcontext.js

Слайд 14

postgresql-rpc-dbcontext

13

Основная библиотека для работы БД Postgresql

Выполнение CRUD операций с таблицами
Вызов представлений и

postgresql-rpc-dbcontext 13 Основная библиотека для работы БД Postgresql Выполнение CRUD операций с
функций

Документирование:
https://docs.appcode.pw/projects?project=postgresql-rpc-dbcontext

Слайд 15

Примеры

14

Создание собственной RPC функции и ее подключение
Способы возвращения результатов
Добавление новой таблицы и

Примеры 14 Создание собственной RPC функции и ее подключение Способы возвращения результатов
обработка ее через RPC
Просмотр данных в интерфейсе ExtJS
Интерфейс тестирования запросов
Добавление безопасности, фильтрация данных
Работа с websocket (https://www.appcode.pw/?p=1256)
Имя файла: RPC-в-NodeJS.pptx
Количество просмотров: 34
Количество скачиваний: 0