Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 11.06.2016, 00:12
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Есть что-нибудь посвежее чем этот модуль?
https://github.com/jurisv/nodejs.extdirect

Он похоже не поддерживается.
ЕС6 игнорирует.
С путями проблемы, требует чтобы скрипт, генерирующий процесс и папка с API лежали на одном уровне.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #22 (permalink)  
Старый 11.06.2016, 00:53
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Можете поздравить. Прикрутил модуль https://github.com/jurisv/nodejs.extdirect к своему приложению.

Правда с путями к API проблема. Там нельзя указать абсолютный путь. Что с этим делать пока не знаю...
Если разрабы ничего не будут делать, то придется этот модуль переписывать самому. В таком виде он не совсем удобоварим.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #23 (permalink)  
Старый 13.06.2016, 21:13
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Поздравляю. ;) Насколько я знаю, этот модуль вполне поддерживается, так что открывайте тикеты и задавайте вопросы. Автор модуля, Юрис, по-русски говорит отлично. ;)
Ответить с цитированием
  #24 (permalink)  
Старый 07.03.2017, 20:41
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Ура! Сделал домен и теперь можно глобально отлавливать ошибки из прокси!
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #25 (permalink)  
Старый 07.03.2017, 21:03
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Вот пример кода:

/**
 * Глобальный отлов серверных ошибок (для таблиц grid).
 */
Ext.define('Pir.core.app.domain.PirReaderJson', {
    extend: 'Ext.app.EventDomain',
    singleton: true,
    
    requires: [
        'Pir.core.data.reader.Json'
    ],
    
    type: 'pirReaderJson',
	prefix: 'pirReaderJson.',
	idMatchRe: /^\#/,
    
    constructor: function() {
        var me = this;
        
        me.callParent();
        me.monitor(Pir.core.data.reader.Json);
    },

    match: function(target, selector) {
        var result = false;
        //var  alias = target.alias;
        
        if (selector === '*') {
            result = true;
        }
		
		//  else if (this.idMatchRe.test(selector)) {
        //     result = target.getStoreId() === selector.substring(1);
        // } else if (alias) {
        //     result = Ext.Array.indexOf(alias, this.prefix + selector) > -1;
        // }
        return result;
    }

});


/**
 * Этот класс создан для работы домена Pir.core.app.domain.PirReaderJson.
 */
Ext.define("Pir.core.data.reader.Json", {

	extend: "Ext.data.reader.Json",

	alias: "reader.pir-json",

	getResponseData: function() {
		var result = this.callParent(arguments);

		if (result.ErrorCode != "1") {
			this.fireEvent("pirerror", result.ErrorDescription, result);
		}

		return result;
	}

});


/**
 * The main application class. An instance of this class is created by app.js when it
 * calls Ext.application(). This is the ideal place to handle application launch and
 * initialization details.
 */
Ext.define('PirDesktopFirst.Application', {
    extend: 'Ext.app.Application',
    
    name: 'PirDesktopFirst',

	controllers: ["Pir.core.controller.Root"],

    stores: [
        // TODO: add global / shared stores here
    ],
    
    launch: function () {
        Pir.Core.selectServer("first");
    },

    onAppUpdate: function () {
        Ext.Msg.confirm('Application Update', 'This application has an update, reload?',
            function (choice) {
                if (choice === 'yes') {
                    window.location.reload();
                }
            }
        );
    }
});


Ext.define("Pir.core.controller.Root", {
	
	extend: "Ext.app.Controller",

	requires: ["Pir.core.app.domain.PirReaderJson"],
	
	init: function() {
		this.listen({
			pirReaderJson: {
				"*": {
					pirerror: this.onPirReaderJsonEvent
				}
			}
		});
	},

	onPirReaderJsonEvent: function(errorDescription, result) {
		Ext.toast({
			html: errorDescription,
			title: 'Ошибка на сервере',
			width: 400
		});
	}

});
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #26 (permalink)  
Старый 08.03.2017, 23:34
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Интересный пример, но я бы ловил ошибки на транспорте; когда данные уже доползли до reader, обычно бывает уже поздно пытаться что-то делать с запросом.

В Ext Direct есть механизм исключений, можно бросать их на сервере при обработке запросов и ловить на клиенте.
Ответить с цитированием
  #27 (permalink)  
Старый 08.03.2017, 23:35
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

А что значит ловить ошибки на транспорте?
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #28 (permalink)  
Старый 26.03.2017, 23:20
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Если речь идет (ловить на транспорте) до того, как данные превратятся в JSON, то данные будут ДВА РАЗА превращаться в JSON. Что не есть хорошо.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эффект исчезания кнопки после проверки ошибок на форме Ильфат Элементы интерфейса 2 08.03.2016 11:17
Обработка ajax ошибок Tek Angular.js 5 15.05.2014 14:10
Серверное логирование javascript ошибок Hapson Ваши сайты и скрипты 2 14.04.2014 19:48
Универсальный дескриптор ошибок Сергей1980 Общие вопросы Javascript 0 11.09.2013 17:27
Обработка ошибок при асинхронном выполнении в JavaScript Mirror13 Общие вопросы Javascript 0 29.04.2012 17:19