Javascript.RU

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

Express: разница между app.locals и app.set(), app.get()
Какая принципиальная разница между app.locals и app.set(), app.get() в плане хранения каких-либо данных приложения?
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2016, 11:11
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

khusamov,
app.set(key, value) === app.locals.settings[key] = value

т.е. в шаблонах обращение как settings.key, а если так
app.locals.key = value
, то в шаблонах обращаемся просто key
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2016, 16:31
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Спасибо за ответ!

Не ясно, зачем нужно было создавать app.locals.settings со своими методами?..
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2016, 16:46
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
Не ясно, зачем нужно было создавать app.locals.settings со своими методами?..
можно устанавливать важные настройки приложения, такие как env, views, view engine и так далее.
http://expressjs.com/ru/4x/api.html#app.set
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2016, 16:48
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

то есть settings это скорее раздел переменных Express-а и его плагинов, а все остальное пользователь сам наполняет как хочет (а точнее все относящееся к сайту например название страницы/сайта)?

хотя они предлагают вот что
app.set('title', 'My Site');
то есть бардак в общем-то))
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #6 (permalink)  
Старый 27.06.2016, 16:53
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

khusamov,
Да, для глобальных переменных, которые можно будет использовать в каждом шаблоне, обычно пишут middleware, где объект response наполняют ими. Например
app.use((req, res, next) => {
    res.locals.flo = baz;
    next()
})

Последний раз редактировалось destus, 27.06.2016 в 17:54.
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2016, 02:23
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Нашел новую инфу для размышления.
Оказывается чтобы задать опцию для шаблонизатора достаточно прописать, например, такую команду

app.locals.pretty = true;


Не сказал бы что это логично, но как ни странно, работает...
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #8 (permalink)  
Старый 28.06.2016, 05:20
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

А так работает?
app.set('view options', { pretty: true });


Вообще, на самом деле должно быть что-то типо
if (app.get('env') === 'development') {
  app.locals.pretty = true;
}
Ответить с цитированием
  #9 (permalink)  
Старый 28.06.2016, 17:35
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Сообщение от destus Посмотреть сообщение
А так работает?
app.set('view options', { pretty: true });
Не работает. Это для экспресса второй версии работало.
http://stackoverflow.com/questions/5...tml-in-express

Сообщение от destus Посмотреть сообщение
Вообще, на самом деле должно быть что-то типо
if (app.get('env') === 'development') {
  app.locals.pretty = true;
}
Само собой. Я там для примера привел же

.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разница между переменной с var и без, которые в глобальной области zhurchik Общие вопросы Javascript 20 15.03.2015 05:30
Разница между my_id и document.getElementById('my_id') js_explorer Events/DOM/Window 6 03.04.2013 17:53
Какая разница между post запросами jquery и ajax? Rooner jQuery 2 18.06.2012 14:29
Какая разница между определениями функций Nadine Общие вопросы Javascript 1 07.03.2012 16:07
Разница между (function(){})() и (function(){}()) ruzzx Общие вопросы Javascript 6 17.04.2011 22:51