Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707

Передача переменной в модуль + свои тараканы

27.07.2016, 20:45. Показов 5079. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Подскажите, как можно передать параметр в модуль, при этом чтобы загруженный модуль оставался в таком виде:
JavaScript
1
2
3
4
5
6
7
8
9
10
var $Config;
exports = module.exports = Any;
 
function Any(req, res) {
    console.log(1);
}
 
exports.Func = function(req, res) {
    console.log(2);
};
JavaScript
1
2
3
var module = require('./module');
module(); //выведет 1
module.Func(); //выведет 2
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.07.2016, 20:45
Ответы с готовыми решениями:

Передача значения переменной одной формы в описание переменной другой
Всем привет. Не могу найти решение проблемы. На первой форме имеется глобальная переменная kol, которая содержит в себе число. на второй...

Объявление переменной, как вводить свои числа
#include <iostream> using namespace std; int main() { double a, b, c, p=(a+b+c)*0.5; cout<<"Ploshchad treugolnika.\n"; ...

Нужен модуль - Пользователи могут сами размещать свои товары Woocommerce
Нужен модуль - Пользователи могут сами размещать свои товары Woocommerce . Причем Front End а не в админке Я не нашел. Есть ли такой ?

19
странник
 Аватар для Donald28
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
27.07.2016, 22:15
Никак, так как переменная не может быть одновременно и функцией и объектом. Но при выполнении функции можно вернуть объект:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
var $Config;
exports = module.exports = Any;
 
function Any(req, res) {
    console.log(1);
     return {
           Func: function(req, res) {
                 console.log(2);
           }
     }
}
JavaScript
1
2
3
var module = require('./module');
var moduleObject = module(); //выведет 1
moduleObject.Func(); //выведет 2
1
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
27.07.2016, 23:16  [ТС]
Donald28, я понял. Но это не то что мне надо)
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
28.07.2016, 11:53
Randen, а вы поточнее объясните то вам нужно
1
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
28.07.2016, 16:29  [ТС]
BANO, есть роутер, в котором назначается get адресам контроллер. И есть обычный запрос и Ajax.
Хотелось бы чтобы было так
JavaScript
1
2
    _$App.get('/:page.((:ajax)?)', Authorization, _$Controllers.$Any.Ajax);
    _$App.get('/:page', Authorization, _$Controllers.$Any);
, а не так:
JavaScript
1
2
    _$App.get('/:page.((:ajax)?)', Authorization, _$Controllers.$Any.Ajax);
    _$App.get('/:page', Authorization, _$Controllers.$Any.Query);
Но вот в контроллере нужны обращения к бд, может еще что-то понадобиться.

Или может я по не правильному пути иду?

Есть ли статьи, где разжевывают организацию грамотной структуры системы сервера?

Добавлено через 6 минут
BANO, еще вопрос появился. В get запросе может быть цепочка callback функций.
А оно как-то замедляет работу? Или движок V8 при запуске всё оптимизирует, что разницы между этой цепочкой и объединением вручную содержимого callback функций в одну функцию не будет?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
28.07.2016, 19:40
Цитата Сообщение от Randen Посмотреть сообщение
что разницы между этой цепочкой и объединением вручную содержимого callback функций в одну функцию не будет?
Эммм, думаю, что это зависит от кода.

Тот код который вы показали, может решатся вашим примером из 1 поста. Может вы точнее скажите что за переменные? Или какие данные вы хотите передавать этим контроллерам?.
0
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
28.07.2016, 19:48  [ТС]
BANO, Вот так выглядит расширяемая архитектура.
Ядро соединяет песочницы(которые подключают модули) и библиотеку(обертку для работы с бд).

И я вот не до конца понимаю эту схему.
Вот надо передать объект библиотеки в контроллер.
Контроллер и библиотека никак не связаны.
Миниатюры
Передача переменной в модуль + свои тараканы  
0
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
28.07.2016, 19:50  [ТС]
Хочется чтобы всё было грамотно. И больше времени уходит на размышления по поводу того, как все это организовать.
Есть ли подробная информация по этому где-то?
Там где взял эту картинку только общее описание такой архитектуры
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
28.07.2016, 22:55
Что-то я тоже с этой картинки как-то не врубаюсь...

Короче, что именно вы хотите получить то?
Такую архитектуру я не понимаю, честно говоря. Если хотите сделать всё грамотно, то библиотеки подключайте require. Короче, я не понимаю зачем вы хотите подгонять express к этой архитектуре. Когда у него своя есть.

Я вот смотрю, скорее эта архитектура на django похожа. Там проект состоит из нескольких приложений (app) в данном случае наверное называется "песочница", которые под себя свои модули подгребают (тут наверное модули и решения).
Я могу и ошибаться.
1
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
29.07.2016, 03:32  [ТС]
BANO, ну это архитектура, я так понимаю, для клиентской стороны.
И я хотел её использовать на сервере.

Просто сейчас очень озабочен грамотным оформлением кода, чтобы в дальнейшем была возможность расширять без затруднений. Скорее всего всё-таки эта архитектура для клиентских приложений.
Но я пока в поисках правильных решений, и, вероятно, запутался.
0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
29.07.2016, 09:41
index.js
JavaScript
1
2
3
4
5
6
'use strict';
 
const a = require( './a' );
 
a(); // 1
a.some(); // 2
a.js
JavaScript
1
2
3
4
5
6
7
8
9
'use strict';
 
module.exports = function ( req, res ) {
    console.log( 1 );
}
 
module.exports.some = function ( req, res ) {
    console.log( 2 );
}
а если хотите хорошую МВЦ архитектуру - посмотрите на фреймворк AdonisJS
0
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
29.07.2016, 16:55  [ТС]
muxahuk1214, и чем это отличается от моего кода в 1 посте?

Добавлено через 12 минут
muxahuk1214, это тоже что express.js + typescript, ну и плюс обертка для работы со sql запросами.
По-моему этот фреймворк просто не нужен.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
29.07.2016, 19:12
Цитата Сообщение от Randen Посмотреть сообщение
express.js + typescript
Где ж вы там ts увидели? Это es2015 (es6 если хотите). Никакого там ts нету.
1
35 / 35 / 15
Регистрация: 06.01.2014
Сообщений: 707
29.07.2016, 21:30  [ТС]
BANO, я считал что в ts есть все что есть в es16. Разве нет?
0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
30.07.2016, 20:55
вы написали что нужно так, а не так.. я подумал ваш пример не работает.. написал как умею, проверил и скинул..

JavaScript
1
2
3
const a = require( 'a' );
_$App.get('/:page.((:ajax)?)', Authorization, a.Ajax );
_$App.get('/:page', Authorization, a );
вот как использовать в вашем случае ( хотелке )

Если это не то что вам нужно, то я не понимаю что вам нужно...
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
01.08.2016, 10:10

Не по теме:

Цитата Сообщение от muxahuk1214 Посмотреть сообщение
я не понимаю что вам нужно...
Я, честно говоря, тоже начинаю терять нить...



Цитата Сообщение от Randen Посмотреть сообщение
что в ts есть все что есть в es16
Ё маё... Да вы я смотрю языки путаете... ts придуман мелкомягкими, чтобы "привнести в тёмный и анархистский js порядок и строгую типизацию". На самом деле ts - просто ещё один язык, который компилируется в js без существенных изменений, им просто надо было выкаблучится и что-то сделать.
es2015 (так же называется es6) - стандарт языка JavaScript (официально ECMAScript, думаю теперь вы поняли что эти две буковки в начале означают) выпущенный в 2015 году. Имеет красивые фичи в виде синтаксического сахарка и несколько функциональных дополнений.
И вообще, в es2016 большая часть взята из coffeescript, так что к ts он имеет малое отношение.
Не путайте!
1
29.12.2016, 15:36

Не по теме:

Цитата Сообщение от BANO Посмотреть сообщение
На самом деле ts - просто ещё один язык, который компилируется в js без существенных изменений, им просто надо было выкаблучится и что-то сделать.
Не могу не высказать своё мнение по этому поводу. Автором TypeScript является Андерс Хейлсберг, который так же является автором языков Turbo Pascal, Delphi, C#. Он работает над этим проектом с 2012 года. Не будут тратить время, чтобы описывать преимущества TS над JS. С вами в этом вопросе я не согласен. Это очень мощный язык. На западе TS становится всё более популярным. Правда, в России, его, наверное, очень мало кто использует и у нас его популярность будет расти очень медленно. Даже то что на кибер форуме почти нет тем по TS (судя по поиску) о многом говорит о популярности у нас, но я всё равно решил прейти на него, чтобы писать на нём браузерные игры, потому что мне он ближе, так как я ещё программирую на C# и долгое время программировал на C++

0
02.01.2017, 15:55

Не по теме:

8Observer8, хм, я с вами не соглашусь, ибо ts не имеет преимуществ никаких, кроме типизации, которая в конечном итоге не нужна простым кнопкам в калькуляторе стоимости натяжных потолков или столешниц. Типизация нужна в больших приложениях, где что-то может не совпасть, и компилятор скажет: "у тебя тут какая-то хрень, ты подумай, я это понимать не собираюсь, сам разбирайся".
Js не типизированный яп, и вносить в него типы нету смысла, ибо он нужен браузерам. Так же как в bash или batch не нужны типы, вроде в powershell тоже нету типов, но тут я не уверен.
Короче, ts - просто ещё один инструмент для разработки, точнее говоря инструментом там является компилятор, который как бы может устранить часть ошибок.
В конечном итоге всё получается как всегда, то есть получается такая же простынка js, который работает точно столько же по скорости.
Вместе с ts можно на одну линейку поставить coffee, потому что он удобнее для написания.
Короче, есть много всякой фигни, и каждая решает одну проблему, и при этом может создать новые. Короче, мне лично легче писать JSDoc коменты, чтобы моя ide могла мне в случае чего подсказать и указать, ts мне не нужен.

0
02.01.2017, 16:55

Не по теме:

Цитата Сообщение от BANO Посмотреть сообщение
Типизация нужна в больших приложениях
Я занимаюсь большими приложениями - сетевые браузерные игры и интерактивными 2D/3D веб-приложениями. Да даже если нужно написать калькулятор, сложить два числа, я тоже это напишу на TS. Я хорошо знаю и использую C#, поэтому лично для меня TS идеален, в плане того, что там тот же самый подход к OOП, как в C#: интерфейсы, наследование, инкапсуляция и т.д. Тем более что самые популярные движки, такие как Babylon.js и Phaser ориентированны на TS, у них даже документация на TS. Ещё я Angular2 может начну изучать, для него туторы только на TS. Тут спорить особо не о чем. Кому что удобнее использовать. Мне интересно писать и клиент и сервер на node.js на TS. А кто-то вполне спокойно может прожить без всякой фигни типа coffee и прочего, а кому-то намного удобнее TS.

0
02.01.2017, 17:08

Не по теме:

8Observer8, на вкус и цвет фломастеры разные :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.01.2017, 17:08
Помогаю со студенческими работами здесь

Передача в Service постоянно обновляющего свои значения объекта
Передаю в Service объект с помощью Parceble, но он сохраняет фиксированное значение, не учитывая его обновления. Как правильно передать...

Передача функции переменной и вызов переменной
Вот как реализовал, правда не работает)) Подскажите где что не так? При нажатии на button1 выполняется функция function get1() которая...

Тараканы в принтере Samsung ML-2015
Люди!!! Подкиньте идеи как выгнать тараканов из принтера! Недавно завез в общагу, очень жалко, классный принтер - лазерный Samsung...

Передача значения и передача переменной
объясните мне разницу...и с кодами пожалуйста...думаю передача значений это через ссылки\указатели,а передача переменных-переменных ...

Я хочу чтобы когда человек вводил вместо переменной c good bad normal он писал свои команды
program intelect1; var c:string; a,b,d,e,f,g,h,y,t,r,w,q,z:integer; arr:array of integer; begin writeln('what is your...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru