Skip to content

Возможность указать глобальные объекты во время шаблонизации в nodejs#226

Open
chestozo wants to merge 1 commit into
pasaran:masterfrom
chestozo:yate.on.server
Open

Возможность указать глобальные объекты во время шаблонизации в nodejs#226
chestozo wants to merge 1 commit into
pasaran:masterfrom
chestozo:yate.on.server

Conversation

@chestozo

@chestozo chestozo commented May 3, 2014

Copy link
Copy Markdown
Contributor

@pasaran

pasaran commented May 5, 2014

Copy link
Copy Markdown
Owner

А ты же понимаешь, что yate.run используется только в командной строке? Когда ты пишешь что-нить типа yate foo.yate data.json.
В реальной жизни — не используется.

@chestozo

chestozo commented May 5, 2014

Copy link
Copy Markdown
Contributor Author

Ну вот я его хочу на стороне descript-а заюзать.
Это та самая реальная жизнь )

@pasaran

pasaran commented May 5, 2014

Copy link
Copy Markdown
Owner

Еще раз прочитай мой коммент.

@chestozo

chestozo commented May 5, 2014

Copy link
Copy Markdown
Contributor Author

Я прочитал внимательно твой коммент.
Скажи мне тогда, как мне из nodejs вызывать yate?

@pasaran

pasaran commented May 5, 2014

Copy link
Copy Markdown
Owner

Ты не прочитал внимательно мой коммент.
Я тебе говорю, что ты поправил вообще не то, что нужно.
Эта функция не вызывается descript'ом. Да и вообще ничем, кроме тестов и консольной тулзы.
Скажи grep -R 'yate\.run' . и посмотри чтоль.

@chestozo

chestozo commented May 5, 2014

Copy link
Copy Markdown
Contributor Author

Я её уже вызывают вот так:
https://github.com/chestozo/noscript-demo/blob/master/server.js#L24

@chestozo

chestozo commented May 5, 2014

Copy link
Copy Markdown
Contributor Author

И если не надо её вызывать - скажи, чего вызывать, когда я хочу из ноды рендерить yate.

@pasaran

pasaran commented May 5, 2014

Copy link
Copy Markdown
Owner

@pasaran

pasaran commented May 5, 2014

Copy link
Copy Markdown
Owner

Все тоже самое вызывать, что и в браузере.

@chestozo

chestozo commented May 5, 2014

Copy link
Copy Markdown
Contributor Author

Спасибо за ссылку.

@pasaran

pasaran commented May 5, 2014

Copy link
Copy Markdown
Owner

Ну и там про внешние функции не написано (потому что это для начинающих), но там же пишешь:

yr.externals.foo = function() { ... };
...

Ну или кладешь все в модуль типа:

//  externals.js
var yr = require('yate/lib/runtime.js');
yr.externals.foo = function() { ... };

И перед шаблоном его тоже require'ишь.

@pasaran

pasaran commented May 5, 2014

Copy link
Copy Markdown
Owner

К слову, дескрипт внутри делает не так.
Уж не знаю сейчас, хорошо это или плохо. Но там шаблон не через require достается, а через vm.
Сделано это для того, чтобы он релоадился при изменении шаблона. Я вот сейчас думаю, что зря. И надо бы переделать.

@chestozo

chestozo commented May 5, 2014

Copy link
Copy Markdown
Contributor Author

Меня больше всего беспокоят глобальные объекты, но в схеме, которую ты описал - должно всё быть видно, что в текущем контексте, я так понимаю.

@pasaran

pasaran commented May 5, 2014

Copy link
Copy Markdown
Owner

Ну да. Собссно ты можешь, конечно, просто в global все напихать, если уж очень нужно.
Но мне вот кажется, что ты как обычно все переусложняешь. И это все вообще не нужно )

@chestozo

chestozo commented May 5, 2014

Copy link
Copy Markdown
Contributor Author

Ну в реальном проекте как бы много чего отличается от идеального мира ;)

@chestozo

chestozo commented May 5, 2014

Copy link
Copy Markdown
Contributor Author

Я решаю задачу "отрендерить тоже самое, что в браузере - но на сервере".
Не знаю, насколько стерильным должен быть процесс рендеринга, чтобы это гладко решалось (без всяких глобальных объектов).

@pasaran

pasaran commented May 5, 2014

Copy link
Copy Markdown
Owner

Ну я вижу, что у тебя там jsdom в ход пошел и вот это все.

@chestozo

chestozo commented May 5, 2014

Copy link
Copy Markdown
Contributor Author

Уже не пошёл, уже без него обошёлся ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants